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
相关推荐
工具罗某人2 小时前
docker实现redis-cluster模式集群部署
java·redis·docker
杨浦老苏3 小时前
轻量级RSS源处理中间件FeedCraft
人工智能·docker·ai·群晖·rss
Devin~Y3 小时前
大厂 Java 面试实战:从电商微服务到 AI 智能客服(含 Spring 全家桶、Redis、Kafka、RAG/Agent 解析)
java·spring boot·redis·elasticsearch·spring cloud·docker·kafka
樽酒ﻬق3 小时前
构筑容器化基石:Docker 稳定版本抉择、极速安装与配置全解
java·docker·运维开发
啦啦啦小石头5 小时前
Docker+Nvidia Container Toolkit 在ubuntu下离线安装
ubuntu·docker·eureka
Ares-Wang12 小时前
Linux》》systemd 、service、systemctl daemon-reload、systemctl restart docker
linux·运维·docker
苏渡苇15 小时前
Docker 网络完全指南
网络·docker·容器·docker容器·容器通信
斯普信云原生组17 小时前
Docker 开源软件应急处理方案及操作手册——镜像管理与构建故障
docker·容器·eureka
MichealChen01050819 小时前
Influxdb-cluster使用docker部署
运维·docker·容器