docker重启策略在on-failure和unless-stopped之间有什么不同?

问题描述 投票:0回答:1

我读了docker-compose的内容 文件 容器的重启策略,但我不明白这两者的区别。on-failureunless-stopped.

什么时候我会使用一个而不是另一个?在什么情况下,某个策略会导致容器的启动,而另一个策略不会?

docker docker-compose restart keep-alive
1个回答
1
投票

on-failure 会在退出代码显示失败时发出重启,而 unless-stopped 表现为 always 并将保持一个实例运行,除非容器被停止。

你可以用hello-world试试,看看有什么不同。

docker run --restart on-failure hello-world 会运行一次并成功退出,而运行后续的 docker ps 将表明当前没有容器的运行实例。

然而, docker run --restart unless-stopped hello-world 将重启容器,即使它成功退出,所以随后运行的 docker ps 将向您显示一个重新启动的实例,直到您停止容器。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                                  PORTS               NAMES
4d498ebd13a6        hello-world         "/hello"            2 seconds ago       Restarting (0) Less than a second ago                       modest_keldysh
© www.soinside.com 2019 - 2024. All rights reserved.