我可以在docker镜像中控制已装入装订的卷的所有者吗?

时间:2015-05-09 14:12:11

标签: permissions docker

我有一个包含日食的码头图像。我在名为 eclipse 的帐户下运行图像中的eclipse。我想用我的工作区目录启动映像,将主机绑定到容器中。不幸的是,容器内安装的卷的所有者不是 eclipse 。安装的卷只保留主机的UID和GID。

有没有办法控制UID和GID是容器中安装的卷?

2 个答案:

答案 0 :(得分:10)

我相信在这一点上无法将UID和GID设置为docker中的挂载选项。但至少有两种解决方法:

  1. 匹配主机和容器中所有者/用户的UID和GID。在您的情况下,如果主机上的所有者ID和GID是1000,请确保容器中拥有用户的uid / gid具有相同的UID和GID,在本例中为1000。

  2. 使用文件访问控制列表命令getfacl - 获取容器上工作区目录所有者的uid / gid,并使用setfacl命令授予此id读/写权限主人。您必须在主机上运行setfacl。这样,acl权限将传播到容器。我不建议在容器级别进行任何所有权更改,因为这会破坏主机上的所有权,并且下次从映像启动容器时不会保留它。

  3. 请记住,在文件权限方面,只有numeric id很重要。

    有用的链接 - permission inside containers

答案 1 :(得分:0)

使工作空间可以写入世界是否可以接受?我相信没有办法改变挂载目录的uid / gid,所以唯一的选择是在主机和容器之间匹配uid / gid(讨厌:()

有关uid / gid的信息,请参阅https://github.com/docker/docker/issues/7198

相关问题