我和Docker玩了一段时间了,我的挂载卷总是有权限问题。
实际上,当我使用docker-compose在Docker容器中运行映像时,我的卷继承了该容器的所有者,并且成为root:root
,因此我无法编辑或将卷复制到其他位置。
谁能告诉我是否有任何Docker方法来解决此问题?
您可以将用户指令放入docker-compose文件(与相同docker run --user someuser ...
),以使容器进程采用现有主机用户的ID /组。
您还可以在容器中设置umask,以使创建的文件组或世界可读/可写(无论是否以root身份运行,但始终不以root身份运行始终是一个好主意)。
您可以考虑构建映像以与其他USER一起运行(即,在Dockerfile中添加USER语句)。该用户的名称无关紧要,但是通常使数字ID与主机上的ID匹配,以便由容器进程创建的所有文件都归该ID所拥有。在主机端,它们似乎由具有相同数字ID的用户ID所拥有。如果您想花哨的话,可以对小组进行同样的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句