前言:
在默认情况下,当 Docker 守护进程终止时,它将关闭正在运行的容器。不过,我们可以配置该守护进程,以便在该守护进程不可用时容器仍在运行。这种功能称为实时恢复。实时还原选项有助于减少由于守护进程崩溃、计划中断或升级而导致的容器停机时间。
Docker官方相关详细文档:https://docs.docker.com/config/containers/live-restore/
具体方法:
1.将配置添加到守护进程配置文件中。在 Linux 上,默认的配置文件为/etc/docker/daemon.json
vim /etc/docker/daemon.json
{
"live-restore": true
}复制
2.Docker reload配置(不会重启docker)
给dockerd发送 SIGHUP信号,dockerd收到信号后会reload配置
systemctl reload docker / kill -SIGHUP $(pidof dockerd)
复制
3.检查上面的配置是否成功
docker info | grep -i live
复制
4.重启Docker,此时重启Docker时就容器就不会停止了
systemctl restart docker
复制
实例:
1.查看当前Docker容器运行状态
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b1364c71a6b5 lizhenliang/tomcat:latest "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp java
434bcfed5c5d registry.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home/o…" 10 months ago Up 29 minutes 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp oracle_11g
#可以看到上面两个容器的运行时间分别为1小时、29分钟复制
2.添加"live-restore": true
配置
[root@localhost ~]# vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://hx983jf6.mirror.aliyuncs.com"],
"graph": "/mnt/data",
"live-restore": true
}复制
3.更新docker配置(不会重启docker,只是更新配置)
[root@localhost ~]# systemctl reload docker 或者发送信号 kill -SIGHUP $(pidof dockerd)
复制
4.查看上面的 "live-restore": true
配置是否成功
[root@localhost ~]# docker info | grep -i live
Live Restore Enabled: true复制
5.重启Docker,验证容器是否会停止
[root@localhost ~]# systemctl restart docker #重启docker
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b1364c71a6b5 lizhenliang/tomcat:latest "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp java
434bcfed5c5d registry.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home/o…" 10 months ago Up 32 minutes 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp oracle_11g复制
可以看到在我们重启完Docker后,上面在运行的两个容器的运行时间分别为1小时、32分钟,容器并没有在我们重启Docker时停止,而是一直保持运行状态 。以后不用再担心处理问题时必须重启 dockerd 时会影响现有业务了,如升级 docker 版本、dockerd 内存泄漏等!
温馨提示
如果您喜欢本文,就请动动您的发财手为本文留言转发在看,想获取更多运维相关内容,请记得关注我。
“点赞+在看”双点击,开启今日暴富
文章转载自非著名运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
NineData 社区版征文评测活动圆满收官!
NineData
155次阅读
2025-04-09 11:01:15
轻松上手:使用 Docker Compose 部署 TiDB 的简易指南
shunwahⓂ️
76次阅读
2025-04-27 16:19:49
Pigsty v3.4 发布:更好的备份与 PITR,排序,基础设施与应用
IvorySQL开源数据库社区
46次阅读
2025-04-11 15:34:47
Dify使用deepseek
golang算法架构leetcode技术php
43次阅读
2025-04-21 10:35:08
GreatSQL社区月报 | 2025.3
GreatSQL社区
25次阅读
2025-04-15 09:49:59
《解锁CSS Flex布局:重塑现代网页布局的底层逻辑》
程序员阿伟
23次阅读
2025-04-29 22:22:33
Harbor使用指南
老柴杂货铺
23次阅读
2025-04-12 00:03:42
在docker内部署deepseek rag环境
golang算法架构leetcode技术php
17次阅读
2025-04-07 09:44:53
KubeKey部署Kubernetes
老柴杂货铺
16次阅读
2025-04-11 02:16:37
PVE LXC 容器操作指南
老柴杂货铺
15次阅读
2025-04-08 00:00:12
热门文章
Kubernetes v1.22.1部署报错2: Get “http://localhost:10248/healthz“
2021-09-24 4848浏览
快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
2021-09-23 3658浏览
三步解决Docker拉取镜像报错:x509: certificate has expired or is not yet v..
2021-09-29 3549浏览
harbor-db重启报错:initdb: error: directory "/var/lib/postgresql/da..
2021-10-16 3280浏览
Gitlab其他用户登录返回500错误解决
2022-03-10 2851浏览