Docker卷文件不可写,以root身份编写

4
我拥有一个文件夹,/me/tmp,我将一个Docker卷挂载到其中:docker run -v /me/tmp/:/root/tmp/。然而,当我的Docker容器创建文件夹和文件时,例如/root/tmp/subdir/file.txt,该文件会被创建为root用户,并且没有其他组或用户的写入权限。这意味着在容器外部,我无法编辑甚至删除此文件/me/tmp/subdir/file.txt。是否有任何方法可以在没有root访问权限的情况下更改文件的权限或所有者,或者从一开始就避免这种情况发生?

这可能会有所帮助:https://denibertovic.com/posts/handling-permissions-with-docker-volumes/ - maxm
2个回答

1
你可以使用用户映射运行Docker,因此在容器中使用uid 0(root)创建的任何文件都会自动映射到主机上的另一个uid。这由两个文件/etc/subuid/etc/subgid处理。
阅读官方文档

-3
尝试在您的dockerfile中运行RUN chmod -R 777 /root/tmp/RUN chmod 777 /root/tmp/,或进入容器并以root身份键入chmod -R 777 /root/tmpchmod 777 /root/tmp-R是递归的意思。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接