【发布时间】:2017-02-09 05:24:12
【问题描述】:
我以rperez 身份登录我的PC (Fedora 24)。我已经设置了 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/www 下创建文件为rperez,因为所有者是root 所以...
处理这个问题的正确方法是什么?我已经阅读了this 和this,但没有太大帮助。
有什么帮助吗?
【问题讨论】:
-
你的意思是
chown $(whoami) /path/to/your/dir? -
@kxxoling 我知道这是正确的命令,但为什么我需要一直在 Docker 创建的每个目录上运行这样的命令?应该是命令或标志或解决方法以避免这种情况,这就是我正在寻找的:)
-
您可以在运行容器之前创建卷目录,因此该目录将归当前用户所有。
-
我在这里找到了一个讨论:github.com/docker/docker/issues/3206 这是预期的行为。您可以在那里找到解决方案,但我认为我的方法更易于使用。
-
@kxxoling 首先创建目录确实有效,请用您的解决方案回答这个问题,以便我接受您的回答,谢谢
标签: linux docker docker-volume docker-container