在 systemd init 下运行进程以进行容器化?

在 systemd init 下运行进程以进行容器化?

Docker 提供了在容器启动时运行命令的能力。这是用指定的CMD在 Dockerfile 中。

但是,如果我希望我的容器以 systemd 启动,我必须使用,

CMD ["/usr/sbin/init"]

然后才在 ps1 中进行 init。如果需要的话,CMD有什么用吗?有没有办法启动systemd,并让它启动另一个进程从命令行,或者podman run指定什么?

容器化有多种不同的哑初始化进程,例如,catatonit,dumb-init, 和tini但他们都很“笨”。我想要一个真正的 systemd init,能够在点击 default.target 后指定进程。

答案1

您正在使用CMD配置容器来启动 systemd,所以在我看来它是“有用的”。

要在容器中启动另一个命令,可以:

  • 在命令行上,使用docker exec;
  • 在容器定义中,使用 systemd 服务。

相关内容