【发布时间】:2020-07-28 05:35:14
【问题描述】:
在非 root 用户的 docker 容器中使用 supervisord 运行 sshd。
我正在使用 root 用户运行 supervisord。它工作正常。 自从我们开始使用最佳实践重写我们的 docker 文件。
我们想在 docker 容器中使用非 root 用户的 supervisord 启动 sshd 进程。
帮我解决这个问题。
【问题讨论】:
标签: docker devops supervisord sshd
在非 root 用户的 docker 容器中使用 supervisord 运行 sshd。
我正在使用 root 用户运行 supervisord。它工作正常。 自从我们开始使用最佳实践重写我们的 docker 文件。
我们想在 docker 容器中使用非 root 用户的 supervisord 启动 sshd 进程。
帮我解决这个问题。
【问题讨论】:
标签: docker devops supervisord sshd
一个 ssh 守护进程本质上需要 root 级别的访问权限才能读取加密的密码文件并能够切换到经过身份验证的用户。您不能以非 root 用户身份运行它。如果一个 supervisord 进程正在启动它,这意味着 supervisord 也必须以 root 身份运行。
如果您的目标是 Docker 最佳实践,标准容器很少运行 ssh 守护进程,您通常应该只在一个容器中运行一个主进程。如果可以的话,我会尝试同时删除 sshd 和 supervisord,并将容器限制为仅运行单个应用程序进程。您通常可以只运行 Nginx,或者只运行一个 Flask 应用程序,或者......作为非 root 用户运行,而不会有太多麻烦。
【讨论】: