Docker – 来自权限的权限

我对Docker非常陌生,所以我可能会错过一些东西,我的数据卷文件夹拥有root

这是我做的(使用nginx反向代理):

 # Data volume container docker create -v <data path> --name <app>-data tianon/true # Webapp container docker run --volumes-from <app>-data --name <app> \ -e VIRTUAL_HOST=<url> \ <image> & 

但nginx不能写入数据文件夹,如果我在我的容器中:

 drwxr-xr-x 2 root root 4096 Dec 16 19:03 data drwxr-xr-x 3 www-data www-data 4096 Dec 16 18:57 doc drwxr-xr-x 2 www-data www-data 4096 Dec 16 18:57 images 

我在我的Dockerfile图像中做了一个chown,但是看起来像--volumes-from变化。

我应该怎么做才能给data文件夹www-data所有权?

理论上( 问题2259 ):

如果您在绑定安装之前调整音量(在主机端),它将工作。

在这种情况下,你可以这样做:

 mkdir /tmp/www chown 101:101 /tmp/www docker run -v /tmp/www:/var/www ubuntu stat -c "%U %G" /var/www 

(假设101:101是您的容器中的www-data用户的UID:GID 。)

请注意,这不是你正在做的事情:你正在将一个主机文件夹挂载到一个数据卷容器(一个非常空的tianon/true镜像, 请参阅Dockerfile )中,然后将该数据卷容器挂载到一个普通的容器中。

不过,这可能工作。