我拥有一个文件夹,/me/tmp
挂载了 docker 卷:docker run -v /me/tmp/:/root/tmp/
. 但是,当我的 Docker 容器创建文件夹和文件而不是目录时,例如 /root/tmp/subdir/file.txt
该文件以 root 身份创建,并且没有其他组或用户的写入权限。 这意味着在容器之外,我无法编辑甚至删除此文件/me/tmp/subdir/file.txt
. 有没有办法在没有root访问权限的情况下更改文件的权限或所有者,或者从一开始就避免这种情况的方法?
您可以使用用户映射运行 docker,因此使用 uid 0(容器中的根目录)创建的任何文件都会自动映射到主机上的另一个 uid。 这由两个文件/etc/subuid
和/etc/subgid
处理。
阅读官方文档
尝试在 dockerfile 中运行 RUN chmod -R 777 /root/tmp/
或 RUN chmod 777 /root/tmp/
,或者进入容器并键入 chmod -R 777 /root/tmp
或 chmod 777 /root/tmp
作为 root。 -R
用于递归