3
我有这样的图像,其中我从主机多克尔:权限安装的卷
-v /Users/john/workspace:/data/workspace
在容器内部装入卷我使用比根不同的用户。现在问题是它不能在/data/workspace
(权限被拒绝)内创建/修改文件。现在我解决了它现在在主机上做chmod -R 777 workspace
。码头解决方法是什么?
我有这样的图像,其中我从主机多克尔:权限安装的卷
-v /Users/john/workspace:/data/workspace
在容器内部装入卷我使用比根不同的用户。现在问题是它不能在/data/workspace
(权限被拒绝)内创建/修改文件。现在我解决了它现在在主机上做chmod -R 777 workspace
。码头解决方法是什么?
这可能与user mapping (issue 7198)来解决,但同一线程包括:
管理使用新dockerfile args设置为解决此问题。在容器建好之后它不需要做任何特别的事情,所以我想我会分享。 (需要多克尔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要求)
thnx很多的答案。但似乎有一个问题。虽然整个用户设置工作,卷(在我的容器内)中的文件似乎有不同的用户:组主人:1000:ftp而不是jeanluca:工作人员。如果我这样做,例如'id -u',我会得到'501'。也许这与所有这些都在mac上的virtualBox内部运行有关。有什么建议么 ? –
@JeanlucaScaljeri然后你需要修改(usermod)你的Dockerfile中的用户,例如(例如)https://github.com/dgraziotin/osx-docker-mysql/blob/master/run.sh#L12 – VonC