Docker - 如果另一个重新启动,则重新启动特定容器

Posted

技术标签:

【中文标题】Docker - 如果另一个重新启动,则重新启动特定容器【英文标题】:Docker - Restart specific container if another restarts 【发布时间】:2020-10-19 17:24:40 【问题描述】:

如果另一个容器失败并重新启动,是否可以重新启动容器?

我有一个服务器容器和多个客户端容器,我希望如果服务器容器发生故障并重新启动,其中一个客户端容器也会重新启动。

我已经使用了重启策略(always、on-failure 等),但这将链接两个容器并在容器 B 重启时触发容器 A 的重启。

【问题讨论】:

我不认为 Compose 可以做到这一点,但它也似乎有点奇怪的要求。如果没有 Compose,你会怎么做?如果服务器和客户端在不同的主机上,你会怎么做? 【参考方案1】:

这个问题似乎与this one 非常相似,如果不是重复的话。

TL;DR:在 docker/docker-compose 中定义复杂的重启策略已经发生了转变,被显式检查 within 服务的依赖关系所取代,因此它与部署无关。因此,建议在“依赖”其他服务的容器创建特定检查,并在不满足它们时正确崩溃,这样就只需要一个简单的restart: always 策略。 p>

【讨论】:

以上是关于Docker - 如果另一个重新启动,则重新启动特定容器的主要内容,如果未能解决你的问题,请参考以下文章

如果找不到则检查进程并重新启动程序的脚本[重复]

如果网络连接断开,则重新启动 systemd 服务

如果我在插入后重新启动识别器列,则脚本文件中的错误

如果 Python 程序被杀死,则自动重新启动它

如果我强制终止进程然后尝试重新启动它,则 EADDRINUSE 错误

如果 cumsum 大于值,则重新启动 cumsum 并获取索引