优雅的重启docker而不影响容器的运行

现象说明

  • 如下情况,想重启下dockerd进程,但是不影响容器的运行.(类似nginx -s reload)
    • 修改docker daemon.json参数,比如忽略https,忽略证书时间, 新增信任的镜像仓库等;
    • dockerd 进程cpu/mem 利用率异常
    • dockerd 触发了什么bug.

排查过程

  • 编辑文件 /etc/docker/daemon.json,添加如下配置
{ "live-restore": true }
  • 给 dockerd 发送 SIGHUP 信号,dockerd 收到信号后会 reload 配置
kill -SIGHUP $(pidof dockerd) 
  • 检查
docker info | grep -i live
# 应该能看到 Live Restore Enabled: true
  • 重启
systemctl restart docker

原因/结论

(类似nginx -s reload)实在是好用,dockerd 有啥问题都可以重启,不用担心重启 dockerd 会影响现有业务了, 多次尝试,无任何问题。

自己评估,重启完后,是否需要把配置改回去。。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐