【发布时间】:2016-11-02 19:17:50
【问题描述】:
在运行 Docker 容器时,允许 Apache 对同步卷进行写访问的正确方法是什么?
- 重要的是,我希望文件夹同步,以便本地更改立即反映在容器内,就像现在使用当前运行命令发生的那样
运行容器时:
docker run -v /Local/folder/toSync:/var/www/html -p 8080:80 --sig-proxy=false the-image
Docker Apache 进程没有对该文件夹的写入权限,因为该文件夹的所有者和组设置为 1000 staff 我相信 1000 正在替换我的本地用户名(容器中不存在)。 Apache 以 www-data 运行,因此无法写入文件。
尝试将本地文件夹用户/组设置为www-data 会导致chown: www-data: illegal user name
设置权限和/或挂载卷以允许 Apache 写访问的正确方法是什么?
【问题讨论】:
-
我大胆猜测,以用户
1000运行 Apache 可能会成功,但这似乎不正确 -
您正在运行什么命令将本地文件夹 user:group 设置为 www-data?
-
同样的结果,我在本地没有
www-data用户。如果需要,我可以创建一个,但这是正确的方法吗?这里似乎是一个相当常见的用例 -
我不认为创建用户是必要的,你在使用 dockerfile 吗?我会尝试将此添加到 dockerfile:
RUN usermod -u 1000 www-dataRUN usermod -G staff www-data -
这就是我之前修复我的方法(使用 Dockerfile)——无论如何,github.com/docker/docker/issues/7198 对此进行了大量讨论,所以最好的办法是去那里寻找解决方案