【发布时间】:2016-01-12 01:17:35
【问题描述】:
我不是在询问是否在码头工人中使用主管,而只是想验证我的理解。
我了解 docker 在运行时会运行一个进程。另外,当我们需要在容器内运行多个进程时,使用supervisor。
我见过几个例子,其中一个容器从基础镜像启动并安装了几个服务,并且容器承诺形成一个新的镜像,所有这些都没有主管。
所以,我的基本疑问是这两种方法有什么区别。
我的理解是,当 docker 容器停止时,它会向 PID 1 的进程发送终止信号,PID 1 管理子进程并停止所有子进程,这正是主管所做的,而我们可以安装多个进程而无需当发出docker run时,supervisor只能运行一个进程,当容器停止时,只会发送PID 1信号,其他正在运行的进程不会被优雅地停止。
请确认我对使用supervisord的理解在多大程度上是正确的。
【问题讨论】:
-
2016 年 9 月更新:请参阅下面的 my new answer:docker 守护进程可以在 docker 1.12 中为您处理那些僵尸进程。
标签: docker supervisord