我有这个图像,我从主机安装一个卷
-v /Users/john/workspace:/data/workspace
在容器内部,我使用的是不同于root的用户.现在的问题是它无法在里面创建/修改文件/data/workspace
(权限被拒绝).现在我解决了它现在chmod -R 777 workspace
在主机上做的事情.Docker解决这个问题的方法是什么?
这可以通过用户映射来解决(问题7198),但同一个线程包括:
管理使用新的dockerfile args解决这个问题.在容器构建之后它不需要做任何特殊的事情,所以我想我会分享.(需要Docker 1.9)
在Dockerfile中:
# Setup User to match Host User, and give superuser permissions ARG USER_ID=0 RUN useradd code_executor -u ${USER_ID} -g sudo RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers USER ${USER_ID}
然后建立:
docker build --build-arg USER_ID=$(id -u)
这样,容器中的用户可以写入已安装的主机卷(无需chown/chmod)