Docker:已安装卷的权限

时间:2015-12-19 09:06:25

标签: linux permissions docker

我有这张图片,其中我从主机

安装了一个卷
-v /Users/john/workspace:/data/workspace

在容器内我使用的是不同于root的用户。现在的问题是它无法在/data/workspace内创建/修改文件(权限被拒绝)。现在我解决了它现在在主机上做chmod -R 777 workspace。码头工人解决这个问题的方法是什么?

1 个答案:

答案 0 :(得分:5)

这可以通过user mapping (issue 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)