前言:
?在默認(rèn)情況下,當(dāng) Docker 守護進程終止時,它將關(guān)閉正在運行的容器。不過,我們可以配置該守護進程,以便在該守護進程不可用時容器仍在運行。這種功能稱為實時恢復(fù)。實時還原選項有助于減少由于守護進程崩潰、計劃中斷或升級而導(dǎo)致的容器停機時間。
Docker官方相關(guān)詳細(xì)文檔:https://docs.docker.com/config/containers/live-restore/
具體方法:
?1.將配置添加到守護進程配置文件中。在 Linux 上,默認(rèn)的配置文件為/etc/docker/daemon.json
vim /etc/docker/daemon.json
{
"live-restore": true
}
2.Docker reload配置(不會重啟docker)
給dockerd發(fā)送 SIGHUP信號,dockerd收到信號后會reload配置
systemctl reload docker / kill -SIGHUP $(pidof dockerd)
3.檢查上面的配置是否成功
docker info | grep -i live
4.重啟Docker,此時重啟Docker時就容器就不會停止了
systemctl restart docker
實例:
1.查看當(dāng)前Docker容器運行狀態(tài)
[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 或者發(fā)送信號 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時停止,而是一直保持運行狀態(tài)
。以后不用再擔(dān)心處理問題時必須重啟 dockerd 時會影響現(xiàn)有業(yè)務(wù)了,如升級 docker 版本、dockerd 內(nèi)存泄漏等!文章來源:http://www.zghlxwxcb.cn/news/detail-438471.html
【個人公眾號】
? 【非著名運維】 --》 公眾號回復(fù) “資料” 送運維自學(xué)資料大禮包哦!
上面也會分享一些運維知識,大家點點發(fā)財手關(guān)注一波,感謝大家。文章來源地址http://www.zghlxwxcb.cn/news/detail-438471.html
到了這里,關(guān)于在Docker守護進程停機期間保持容器運行(即重啟Docker時,正在運行的容器不會停止)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!