替代码头的supervisord

即使对于码头工人环境,Supervisord也是非常棒的工具.它对stderr重定向和信号转发有很大帮助.但它有一些缺点:

>它不支持延迟启动.在主应用程序初始化之前,延迟某些代理启动可能很有用.优先权无法解决此问题.
>如果某个应用程序进入FATAL状态,则supervisord只记录它,但继续工作.因此,在查看容器日志之前,您无法看到它.如果supervisord刚停止,它可能会更友好,因为在这种情况下你会看到docker ps -a的问题

那么supervisord的最佳替代方案是什么?

最佳答案
为了回应“PID1僵尸收割”问题,我之前建议(在“Use of Supervisor in docker”中)使用runit instead of supervisord

Runit uses less memory than Supervisord because Runit is written in C and Supervisord in Python.
And in some use cases,process restarts in the container are preferable over whole-container restarts.

有关更多信息,请参见phusion/baseimage-docker图像.

Torsten Brongerthe comments所述:

Runit is not there to solve the reaping problem.
Rather,it’s to support multiple processes. Multiple processes are encouraged for security (through process and user isolation).

自2015年起,您现在可以Specify an init process that should be used as the PID 1 in the containe,with docker run --init

The default init process used is the first docker-init executable found in the system path of the Docker daemon process.
This docker-init binary,included in the default installation,is backed by 07006.

相关文章

文章浏览阅读8.8k次,点赞2次,收藏7次。本文介绍Docker Com...
文章浏览阅读1.5w次,点赞7次,收藏76次。原网提供的教程需要...
文章浏览阅读940次,点赞20次,收藏20次。通过 docker run 命...
文章浏览阅读1k次,点赞20次,收藏20次。Podman 是一个开源的...
文章浏览阅读2.1k次。请注意,这些命令需要在 Docker 主机上...
文章浏览阅读1.1k次,点赞37次,收藏40次。nacos搭建集群连接...