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拥有的nonrootuserreplace。 因此,在运行容器之前,您需要确保主机文件夹具有正确的权限。 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对文件夹安全性的控制。