docker restart_policy on-failure 与 any 有什么区别

What's the difference between docker restart_policy on-failure vs any

在 docker swarm v3 文档中,有 3 种不同的重启策略条件可以使用。 none 条件的作用很明显,但我想知道 on-failureany 之间的具体区别是什么。

这是来自 docs 的图片:

on-failure 策略处理容器存在时的任何时间 non-zero 代码。 any 策略涵盖任何其他场景,但可能仅在守护进程重新启动时处理,具体取决于容器的停止方式(例如,使用 docker stop 故意停止容器不会导致立即重新启动)。

有关详细信息,请参阅此文档:https://docs.docker.com/config/containers/start-containers-automatically/

注意:我不建议在 swarm 模式下对容器 运行 使用重启策略。我见过场景,例如主机内存不足,swarm 模式和 docker 引擎都会尝试重新启动容器,最好让 swarm 模式重新创建一个新容器,可能在另一台主机上。