我想要一个默认情况下可以从 docker 主机和容器内访问 rwx 的目录。我该怎么做?

问题描述 投票:0回答:1

我在外部有一个用户,其名称与内部用户的名称不同。两者都有相同的 UID,因此我可以在“墙的两侧”写入,因为文件权限在绑定安装卷上的 docker 内外具有相同的 UID。

它不再适用于当前版本的 docker:bind/mount 目录外部属于 myUser (UID=1000),内部属于 root (UID=0)。

linux docker file docker-compose permissions
1个回答
0
投票

我进行了搜索以调查 Docker 处理绑定挂载的文件权限和所有权方面的最新变化,但没有找到有关 Docker 在这方面所做的任何最新更新或更改的具体信息。 为了解决这个问题,我建议尝试以下几个选项:

  • 选项 1:标准解决方案包括在 Dockerfile 中硬编码 UID。构建 Docker 镜像时,您可以在容器内创建一个与主机用户具有相同 UID/GID 的用户,并切换到该用户。例如,在 Dockerfile 中添加类似
    RUN adduser --uid 1000 myUser
    USER myUser
    的内容。
  • 选项 2:在 Docker 中使用用户命名空间重新映射。此功能将容器的用户映射到主机上权限较低的用户,从而减轻与容器的 root 用户相关的风险。
  • 选项 3:将主机上的文件权限调整为更宽松,允许容器的用户访问它们。然而,这种方法可能会产生安全隐患
  • 选项 4:创建卷时,使用与容器用户匹配的正确权限来设置它。

您可以在本文中找到有用的信息:

Docker Volume 中绑定挂载的权限问题

© www.soinside.com 2019 - 2024. All rights reserved.