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 )中,然后将该数据卷容器挂载到一个普通的容器中。
不过,这可能工作。