在 Docker 容器内使用进程管理器有哪些优点?

在 Docker 容器内使用进程管理器有哪些优点?

正如所提到的杰罗姆

您还需要添加一个进程管理器;例如 Monit 或 Supervisor。这是因为 Docker 只会监视一个进程。如果您需要多个进程,则需要在顶层添加一个进程来处理其他进程。换句话说,您正在将一个精简而简单的容器变成一个更复杂的东西。

我不太清楚为什么需要容器内的一个进程管理器。

那么有人能向我解释一下,在容器内拥有进程管理器有哪些好处吗?让 systemd 或 upstart 处理进程,而不是向容器添加额外的服务,不是更好吗?

答案1

这就是整个想法,在容器内使用 systemd(或 upstart 等)。Docker 大部分时间用于每个容器运行单个服务,因此对于复杂的站点,您需要一个用于 Web 服务器的容器和另一个用于数据库服务器的容器。使用进程管理器,您可以在同一个容器中运行两者。

哪种方法更好,这取决于个人看法。不过据我所知,截至 2014 年 6 月,在 Docker 中运行 systemd 并不容易,例如,存在 bug#3629- “在 docker arch 容器内运行 systemd 挂起或出现分段错误”。有关更多详细信息,还请阅读“在 Docker 容器内运行 systemd”

相关内容