Docker组成集合用户和组

我正在尝试在docker-compose中安装一个卷以Apache镜像。问题是,我的docker中的apache运行在,www-data:www-

data但是挂载的目录在之下创建root:root。如何指定挂载目录的用户?

我试图运行命令setupApacheRights.shchown -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 id

uid=100(www-data) gid=101(www-data) groups=101(www-data)

然后,在您的Docker主机上,使用uid(在本示例中为100)更改已安装目录的所有者:

chown -R 100 ./

动态扩展

如果您正在使用docker-compose,则最好这样做:

$ docker-compose exec SERVICE_NAME id

uid=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

回到顶部