Docker容器的重启策略

在运行docker run命令启动容器时,可以通过--restart指定容器退出时的重启策略。
当重启策略在一个容器上生效时,通过docker ps观察,该容器的状态不是Up就是Restarting。也可以通过docker event检查容器具体的重启策略。
Docker(18.07)目前支持以下几种重启策略:

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

使用重启策略时注意以几点:

  1. 重启策略只有在容器启动成功之后才会生效。这里的启动成功指的是容器至少运行了10秒,docker deamon已经开始监控它了。这防止了一个根本无法启动成功的容器陷入重启死循环。
  2. 手动停止容器后,重启策略会在docker deamon重启或容器被手动重启后生效,同样为了防止陷入重启死循环。
  3. 这里的重启策略是容器级别的,swarm service的重启策略请参考flags related to service restart.

参考:

https://docs.docker.com/engine/reference/run/#restart-policies---restart
https://docs.docker.com/config/containers/start-containers-automatically/
https://blog.codeship.com/ensuring-containers-are-always-running-with-dockers-restart-policy/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容