2016-10-02 94 views
3

我有以下Dockerfile运行nginx的在泊坞容器非root用户授予权限被拒绝的错误

FROM ubuntu:14.04 
EXPOSE 8000 

# Install nginx 
RUN apt-get update -q \ 
    && apt-get install --no-install-recommends --no-install-suggests -y -q \ 
         nginx \ 
    && rm -rf /var/lib/apt/lists/* 

COPY ./nginx.conf /etc/nginx/ 
COPY ./index.html /usr/share/nginx/test/ 

RUN groupadd -r webgroup \ 
    && useradd -r -m -g webgroup webuser \ 
    && touch /run/nginx.pid \ 
    && chown -R webuser:webgroup /var/log/nginx /var/lib/nginx /run/nginx.pid 

USER webuser 
CMD nginx 

当我运行它,我得到权限上/var/log/nginx否认

mikhails-mbp:test-docker-nginx mkuleshov$ docker run -p 8000:8000 mytest 
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 
2016/10/02 17:02:51 [emerg] 5#0: open() "/var/log/nginx/access.log" failed (13: Permission denied) 

如果我用bash进入容器我看到:

[email protected]:/var/log/nginx$ ls -la 
total 8 
drwxr-x--- 2 webuser webgroup 4096 Jun 2 15:16 . 
drwxrwxr-x 8 root syslog 4096 Oct 2 17:02 .. 

这怎么可能?在上述会话期间,我也无法在该用户下创建文件。

帮助的东西:删除/var/log/nginx并重新创建它。但我不知道为什么会发生这种情况。

没有SELinux。

有没有人遇到过这样的事情,或者有什么我做错了?

P.S.这里是如果它可以帮助

mikhails-mbp:test-docker-nginx mkuleshov$ docker info 
Containers: 179 
Running: 0 
Paused: 0 
Stopped: 179 
Images: 901 
Server Version: 1.11.2 
Storage Driver: aufs 
Root Dir: /mnt/sda1/var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 1109 
Dirperm1 Supported: true 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: bridge null host 
Kernel Version: 4.4.12-boot2docker 
Operating System: Boot2Docker 1.11.2 (TCL 7.1); HEAD : a6645c3 - Wed Jun 1 22:59:51 UTC 2016 
OSType: linux 
Architecture: x86_64 
CPUs: 1 
Total Memory: 1.955 GiB 
Name: default 
ID: 3K5S:3QBN:BXGY:FASS:VG6P:D4CS:UXRK:GYXB:HJQG:SIQH:F6KQ:N4BN 
Docker Root Dir: /mnt/sda1/var/lib/docker 
Debug mode (client): false 
Debug mode (server): true 
File Descriptors: 15 
Goroutines: 32 
System Time: 2016-10-02T17:08:51.355144074Z 
EventsListeners: 0 
Username: mkuleshov 
Registry: https://index.docker.io/v1/ 
Labels: 
provider=virtualbox 

P.P.S.这里是一个测试回购与配置的情况下:https://github.com/aides/test-docker-nginx

+0

你没收到建设中的形象时,此警告消息:'[提醒] 7#0: “用户” 指令也只感如果主进程以超级用户权限运行' – devlent

+0

当'nginx.conf'中有'user'指令时,会出现此警告。在这里,我以非超级用户身份运行主进程,并且在'nginx.conf'中没有'user'指令。我也不确定我在这里没有错,所以任何意见都是值得欢迎的。 – Aides

回答