Docker容器卷具有root权限
我正尝试以非root用户身份启动容器。 正在生成的卷具有仅根访问权限。 容器的非root用户无法写入容器的卷目录。
泊坞窗,compose.yml
volumes: - ./trm/workspace:/opt/kad/translation/workspace
Dockerfile:
RUN chown -R nonrootuser /opt/kad/translation/workspace VOLUME /opt/kad/translation-resource-monitor/workspace
有什么办法可以创build具有对非root用户写访问权限的卷。
不会生成卷,而是使用主机权限进行挂载。 此外,Dockerfile指令在运行容器之前的映像构build上执行。 在你的情况下,由非nonrootuser
用户所拥有的/opt/kad/translation/workspace
目录将被./trm/workspace
容器启动时与主机相同的uid / gid拥有的nonrootuser
replace。 因此,在运行容器之前,您需要确保主机文件夹具有正确的权限。 G:
chown -R uid_of_nonrootuser_in_container:gid_of_nonrootuser_in_container \ ./trm/workspace && docker-compose up -d
请注意,主机和容器上有不同的用户,因此您应该使用容器用户的uid和gid,而不是用户名和组名。 在容器中查找uid和gid运行id nonrootuser
。
另一个解决scheme(如Manish Joshi指出的)是使目录对所有用户可写:
chmod -R 0777 ./trm/workspace
但是这样可以减less对文件夹安全性的控制。