当前位置: 首页 > 面试题库 >

我可以控制Docker映像中绑定安装的卷的所有者吗?

古文康
2023-03-14
问题内容

我有一个包含日食的码头工人图像。我在名为 eclipse 的帐户下运行图像中的 Eclipse
。我想从主机绑定安装到容器中的工作空间目录启动映像。不幸的是,容器中已安装的卷的所有者没有 。装入的卷仅保留主机的UID和GID。

有什么方法可以控制将哪个UID和GID安装在容器中的卷?


问题答案:

我相信目前还无法在Docker中将UID和GID设置为安装选项。但是至少有两种方法可以解决此问题:

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

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

请记住,涉及文件权限时,仅需注意numeric id

有用的链接- 容器内的权限



 类似资料:
  • 我得到了 我觉得我错过了一些极其简单的东西,但我却无法完全弄明白。如有任何帮助,将不胜感激。

  • 这是我第一次尝试创建Docker形象,我希望有人能帮助我。我的Dockerfile大致如下所示: 基本上,我只是为了扩展jar文件而安装Java。运行makefile时,出现以下错误: /bin/sh:1:/usr/lib/jvm/java-7-openjdk-amd64:权限被拒绝 我一直试图效仿这个例子:https://registry.hub.docker.com/u/barnybug/op

  • 问题内容: 我需要将应用程序日志共享到已安装的卷。我想将相同的卷装载到所有Docker容器以保留日志。可能吗?会影响在每个容器上运行的应用程序吗? 问题答案: 是的,您可以将同一位置作为卷添加到许多Docker容器。 另外,您可以将日志目录安装在实际上不运行任何应用程序的一个容器中,然后在其他容器中使用该容器中的卷,而不必在所有位置重复路径。 值得阅读Docker卷

  • 我刚刚安装了ubuntu docker映像,当我执行“ifconfig”时,它说没有这样的命令,我尝试了apt-get install因为没有名为“ifconfig”的包(我可以安装一些其他映像)。 那么如何做到这一点呢?多谢了。

  • 问题内容: 我想将绑定安装添加到docker文件中,就像在Dockefile中初始化一个卷一样。有什么办法吗? 问题答案: Dockerfile定义映像的构建方式,而不是其使用方式-因此您无法在Dockerfile中指定绑定安装。尝试改用docker- compose 。一个为您安装目录的简单示例如下所示: 的,如果你通过其他方式构建图像是可选的,但有时也很方便做这一切的一个。 与运行