前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何设置Docker容器重启策略?

如何设置Docker容器重启策略?

作者头像
用户1560186
发布2019-11-20 17:07:00
2.6K0
发布2019-11-20 17:07:00
举报
文章被收录于专栏:运维录运维录

开始之前

宿主机可能会因某些原因(如宕机)重新启动,默认情况下docker容器是停止状态的,这可能会对某些应用场景带来不便,所以docker提供了--restart参数,在创建容器时设置此参数,docker守护进程将重新启动容器。

举个栗子

1. 创建容器

代码语言:javascript
复制
docker run -d --name test \
    --restart=unless-stopped \
    -p 8080:8080 \
    tomcat:alpine

2. 列出容器

代码语言:javascript
复制
docker ps --format '{{.ID}} {{.Status}} {{.Names}}'
a88aa63d67a9 Up 1 minutes test

注意: 这里ps子命令使用格式化输出,特别是status列表示容器的状态,更多信息请查看参考2。

3. 模拟宕机

代码语言:javascript
复制
# 强制关闭VM电源,并重新开机。

4. 验证容器运行状态

代码语言:javascript
复制
docker ps --format '{{.ID}} {{.Status}} {{.Names}}'
a88aa63d67a9 Up 51 seconds test

命令帮助

代码语言:javascript
复制
docker run --help | grep "restart"
 --restart=no   Restart policy to apply when a container exits

restart 参数选项

代码语言:javascript
复制
no
默认选项,不会重新启动容器。

on-failure[:max-retries]
容器处于非零退出状态时重新启动容器,使用可选项则会限制重新启动尝试次数。

unless-stopped
无论容器退出状态如何始终重新启动容器,但如果容器之前已处于停止状态,则在守护程序启动时不会启动它。

always
无论容器退出状态如何,Docker守护进程无限期地尝试重新启动容器。

小结

最后来总结下文章中的知识点

  • 没有显示指定restart参数创建的容器,docker将会使用默认值No,也就是不会重新启动容器。
  • 对于某些关键应用场景,建议首选 unless-stopped 或者 on-failure选项,好处是不会无限制地重启容器。
  • always选项建议作为次选,因为当容器内部应用错误而停止(非零退出状态),docker仍然不断地尝试重新启动容器。

参考文章

参考1 resstart 策略

https://docs.docker.com/engine/reference/run/#restart-policies-restart

参考2 docker ps 格式化do docker

https://docs.docker.com/engine/reference/commandline/ps/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始之前
  • 举个栗子
  • 命令帮助
  • 小结
  • 参考文章
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档