Docker没有运行init。因此,启动期间不会启动服务。 Lxc在lxc-start期间运行init.Since Docker使用lxc为什么它不运行init。不运行init和依赖supervisord进行守护进程有什么好处?
答案 0 :(得分:0)
我认为运行/ sbin / init只是lxc-start中的默认行为,它等待运行命令。 docker中的run命令没有默认的命令参数。
您可以在docker中明确运行init:
docker run ubuntu /sbin/init
就个人而言,我喜欢这种行为 - 我更喜欢使用容器来处理我的几个apss相关进程,而且我不需要启动init。
答案 1 :(得分:0)
优点是保持容器轻量化。您决定要运行哪些进程,而不是更多。这样,docker可以非常快地启动容器。
顺便说一句,你不依赖于supervisord,因为你可以编写一个复杂的shell脚本,你可以将它放在你的命令中。
docker的一个应用程序是将其设置为可执行文件。例如。您可以制作运行单元或集成测试的图像。现在,您不希望每个人都运行几十个您不使用的服务,对吗?