docker 容器上的持久性 /etc/passwd

lam*_*a02 5 linux mount passwd volumes docker

我创建了一个 docker 镜像,允许用户使用 SSH 连接它。

出于安全原因,我希望用户可以更改他们的密码。我只使用 docker 命名的卷,所以我无法绑定 /etc/passwd 并且我不想挂载所有 /etc

有任何想法吗?提前致谢。

lam*_*a02 5

最后我找到了这个解决方案:

  • 创建命名卷
  • 安装它(例如在 /users 中)
  • 在其上设置一个影子文件
  • 在容器启动时,在 /etc/shadow 上创建 /user/shadow 的链接


Nor*_*man 0

在这个问题中,有人问是否可以使用 docker compose 将文件挂载为卷(答案是肯定的),所以如果可以使用 compose 来实现,我认为这也可以使用 docker 来实现。我知道这与您的问题不同,因为它们使用主机目录/文件,但是使用 docker 命名的卷(如您在此处看到的)来使容器主机独立,这是通过创建一些由 docker 处理的卷来完成的。
因此,请尝试创建一个卷并将该卷安装在 passwd 文件的位置。