我读了docker-compose的内容 文件 容器的重启策略,但我不明白这两者的区别。on-failure
和 unless-stopped
.
什么时候我会使用一个而不是另一个?在什么情况下,某个策略会导致容器的启动,而另一个策略不会?
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