docker restart 策略

docker restart 策略

docker 有 4 中 restart 策略,在容器退出后 Docker daemon 是否重启容器:

no

不会自动重启容器。这是默认值。

on-failure[:max-retries]

如果容器的退出码非零,则重新启动该容器。可以通过可选的 max-retries 来限制尝试重启的次数,例如 docker run --restart=on-failure:10 redis,默认为无限制。

如果重启 Docker daemon 进程时 on-failure 容器的状态为 Exited (0),则不会自动启动容器,如果状态为 RestartingExited (x > 0) 则会自动重启容器。

always

总是重新启动容器。如果容器是手动停止的(通过 docker stopdocker kill),那么只有当 Docker daemon 重新启动,它才会重新启动。

unless-stopped

与always类似。但如果容器是手动停止的(通过 docker stopdocker kill),即使 Docker daemon 重新启动,也不会重新启动容器。

在每次重新启动之前会有延迟时间,初始值是 100ms,之后每次翻倍,直到达到最大值 1分钟。下图是执行 docker run --restart always -d redis --entrypoint exit 1 后的 docker events | grep "container start" 的输出,可以看出延迟时间的趋势基本符合前述的规律:

通过以下命令可查看容器的重启次数

shell 复制代码
docker inspect -f "{{ .RestartCount }}" my-container
2
相关推荐
仙柒4156 小时前
Docker存储原理
运维·docker·容器
快乐的哈士奇9 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
weixin_4492900110 小时前
Docker + MySQL 在 Windows 11 上的本地安装部署文档
mysql·docker·容器
Ysn071911 小时前
中文乱码:在 Docker 容器中设置中文语言环境
运维·python·docker·容器
zxd02031111 小时前
EFK(Elasticsearch + Fluentd + Kibana) 日志收集系统
运维·docker·jenkins
终端行者11 小时前
Jenkins Pipeline 企业级用法 参数化构建+Ansible发布---上
docker·ansible·jenkins·cicd
亚空间仓鼠13 小时前
Docker容器化高可用架构部署方案(十三)
docker·容器·架构
米高梅狮子13 小时前
01.mysql的备份与恢复
运维·数据库·mysql·docker·容器·kubernetes·github
console.log('npc')13 小时前
Windows 11 → WSL2 → Ubuntu → Docker → Codex → Sub2API
windows·ubuntu·docker