如何修改Docker容器重启策略默认的10秒启动判定时长?
解决方案
这个10秒的阈值是Docker daemon的全局配置项,无法针对单个容器单独调整,需要修改daemon的配置文件来全局生效,具体步骤如下:
编辑/创建Docker daemon配置文件
绝大多数Linux系统中,daemon的配置文件位于/etc/docker/daemon.json。如果文件不存在,直接创建即可。添加
startup-timeout配置
在配置文件中加入以下JSON内容(如果已有其他配置,确保JSON格式正确,键值对用逗号分隔):{ "startup-timeout": 60 }这里的
60就是你要设置的等待时长(单位:秒)。重启Docker daemon
根据你的系统类型执行对应的重启命令:- 基于systemd的系统(如Ubuntu 18.04+、CentOS 7+等):
sudo systemctl restart docker - 基于upstart的系统:
sudo service docker restart
- 基于systemd的系统(如Ubuntu 18.04+、CentOS 7+等):
验证配置是否生效
重启后,可以通过查看Docker daemon的日志来确认配置已加载:sudo journalctl -u docker.service | grep "startup-timeout"如果配置成功,日志中会显示类似
Setting startup timeout to 60 seconds的信息。
注意要点
- 这个修改是全局生效的,所有容器的重启判定都会遵循新的60秒规则,无法单独为某个容器设置不同的阈值。
- 修改后,新启动的容器和已运行的容器都会受此配置影响,因为重启判定逻辑是由Docker daemon控制的。
内容的提问来源于stack exchange,提问作者Chase




