我打算在容器内使用“ systemd”。根据我阅读的文章,每个容器最好限制一个过程。
但是,如果我在容器内配置“ systemd”,则最终将运行许多进程。
在做出任何决定之前,先了解在容器内使用systemd的利弊是非常棒的。
我建议您尽可能避免将systemd放在容器中。
Systemd挂载文件系统,控制几个内核参数,拥有自己的内部系统来捕获进程输出,配置系统交换空间,配置大页面和POSIX消息队列,启动进程间消息总线,启动每终端登录提示并管理大量的系统服务。其中许多就是Docker为您服务的事情;其他是Docker默认阻止的系统级控件(有充分的理由)。
通常,您希望容器做一件事情,这有时需要多个协调过程,但是您通常不希望它做systemd提供的超出过程管理器的任何事情。由于systemd更改了许多主机级参数,因此您经常需要运行它,因为--privileged这会破坏Docker隔离,这通常不是一个好主意。
正如您在问题中所说,通常认为最好在每个容器中运行一个“部件”。如果您不能做到这一点,那么对于Docker和Unix而言,像supervisor这样的轻量级进程管理器会要求最小的初始化进程才是更好的选择。
| 归档时间: |
|
| 查看次数: |
3981 次 |
| 最近记录: |