Docker组成集合用户和组
我正在尝试在docker-compose中安装一个卷以Apache镜像。问题是,我的docker中的apache运行在,www-data:www-
data但是挂载的目录在之下创建root:root
。如何指定挂载目录的用户?
我试图运行命令setupApacheRights.sh
。chown -R www-data:www-data /var/www
但它说chown:
changing ownership of '/var/www/somefile': Permission denied
services: httpd:
image: apache-image
ports:
- "80:80"
volumes:
- "./:/var/www/app"
links:
- redis
command: /setupApacheRights.sh
我希望能够指定安装它的用户。有办法吗?
回答:
首先确定www-data
用户的uid :
$ docker exec DOCKER_CONTAINER_ID iduid=100(www-data) gid=101(www-data) groups=101(www-data)
然后,在您的Docker主机上,使用uid(在本示例中为100)更改已安装目录的所有者:
chown -R 100 ./
动态扩展
如果您正在使用docker-compose
,则最好这样做:
$ docker-compose exec SERVICE_NAME iduid=100(www-data) gid=101(www-data) groups=101(www-data)
$ chown -R 100 ./
您可以将其放在一个单行中:
$ chown -r $(docker-compose exec SERVICE_NAME id -u) ./
该-u
标志仅将打印uid
到标准输出。
以上是 Docker组成集合用户和组 的全部内容, 来源链接: utcz.com/qa/401962.html