在运行 docker run 命令启动容器时,可以通过 --restart 指定容器退出时的重启策略 (在 docker-compose 中则使用 restart 关键字来指定) 。

目前 docker 19.03 中支持的重启策略有以下几种:

策略描述
no不自动重启(默认模式)
on-failure[:max-retries]重启因出错停止的容器(非0退出码)。可以通过指定max-retries来限定docker daemon的最大尝试重启次数
alwaysdocker daemon会无限尝试重启退出的容器(无论以什么退出码退出)。手动停止容器后,容器策略不再生效。除非重启 docker deemon
unless-stoppedalways类似,区别在于手动停止容器后,就算重启 docker deemon,容器策略也不再生效。

注意事项:

  1. 重启策略只有在容器启动成功之后才会生效。这里的启动成功指的是容器至少运行了10秒,docker deamon已经开始监控它了。这防止了一个根本无法启动成功的容器陷入重启死循环。
  2. 手动停止容器后重启策略会失效,直到 docker daemon 被重启或手动重启容器后,重启策略才会再次生效。主要是为了防止重启死循环。
  3. 这里的重启策略只适用于普通容器,有关 swarm service 的重启策略请查看官方文档

Reference: https://docs.docker.com/config/containers/start-containers-automatically/#use-a-restart-policy

最后修改:2021 年 05 月 24 日
如果觉得我的文章对你有用,请随意赞赏