Docker容器如何获取主机进程退出消息?

时间:2019-05-29 03:24:13

标签: docker

我们的项目中有两个进程,它们在物理机中作为具有“ BindsTo”配置的两个Systemd服务运行。如果重新启动进程A,则进程B也将重新启动。他们工作良好,直到由于某些原因我们不得不将流程B容器化。现在,进程A在主机中运行,而进程B在Docker容器中,并且Systemd机制不再起作用。

像Systemd'BindsTo'一样,是否有任何方法可以使进程B在重新启动后立即得到通知?

1 个答案:

答案 0 :(得分:0)

只需将容器放入系统Unit中,就可以像系统service一样控制容器。例如:

[Unit]
Description=B in Docker
After=docker.service
Requires=docker.service

[Service]
ExecStartpre=-/usr/bin/docker stop container_b
ExecStartpre=-/usr/bin/docker rm container_b
ExecStart=/usr/bin/docker run --rm --name container_b image:tag
ExecStop=-/usr/bin/docker stop container_b
ExecStop=-/usr/bin/docker rm container_b
Restart=always