7

我以rperez. 我已经设置了 Docker 以便能够通过这个用户运行,所以我正在运行一个容器,如下所示:

$ docker run -d \
             -it \
             -e HOST_IP=192.168.1.66 \
             -e PHP_ERROR_REPORTING='E_ALL & ~E_STRICT' \
             -p 80:80 \
             -v ~/var/www:/var/www \
             --name php55-dev reypm/php55-dev

请注意$符号表示我以非 root 用户身份运行命令(使用#)。上面的命令创建了以下目录:/home/rperez/var/www但所有者设置为root我相信这是因为在幕后docker以用户身份运行。root

进行此设置后,我无法在~/var/wwwas下创建文件,rperez因为所有者是root如此...

处理这个问题的正确方法是什么?我已经阅读了这个这个,但不是很有帮助。

有什么帮助吗?

4

2 回答 2

5

正如这里所讨论的,这是 docker 的预期行为。您可以在运行 docker 命令之前创建目标卷目录,或者在 docker 创建目录后将所有者更改为当前用户:

chown $(whoami) -R /path/to/your/dir
于 2016-09-30T15:56:26.230 回答
0

我遇到了同样的问题(出于同样的原因,也在基因组学背景下),并且发现它非常不直观。什么是“继承所有权”的推荐方式。对不起,如果这在其他地方描述,但我找不到它。是不是像:

docker run ... -u $(id -u):$(id -g) ...
于 2022-01-20T13:00:13.617 回答