我们的项目中有两个进程,它们在物理机中作为具有“ BindsTo”配置的两个Systemd服务运行。如果重新启动进程A,则进程B也将重新启动。他们工作良好,直到由于某些原因我们不得不将流程B容器化。现在,进程A在主机中运行,而进程B在Docker容器中,并且Systemd机制不再起作用。
像Systemd'BindsTo'一样,是否有任何方法可以使进程B在重新启动后立即得到通知?
答案 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