微信扫一扫 分享朋友圈

已有 1562 人浏览分享

开启左侧

docker容器自启动与守护进程停止后容器保活

[复制链接]
1562 0
一、守护进程开机自启
在我们安装docker的时候,介绍过启动docker守护进程的命令如下,需要人工手动执行。
systemctl start docker

如果我们希望在linux服务器启动的时候,就自动启动Docker守护进程,无需人工干预,就使用下面的命令即可
systemctl enable docker.service;

下面的两个命令大家根据自己的需要,在合适的场景下使用即可。

# 删除docker守护进程开机自启动配置
systemctl disable docker.service;
# 重新配置docker守护进程开机自启动
systemctl reenable docker.service;

二、容器自启动
docker守护进程自动启动之后,假如我们希望某些容器能够随之也自启动提供并服务,在容器创建时使用如下命令即可:
# 注意`--restart unless-stopped`是能够实现自启动的关键参数
docker run -d --restart unless-stopped nginx

如果我们已经存在一个运行时容器,想让它增加容器自启动的能力,使用如下命令即可
docker update --restart unless-stopped nginx

重启策略说明
unless-stopped是笔者比较常用的重启策略,除此之外docker还提供了其他的重启策略,--restart的值可以是以下任何一种:
image.png
为什么我常常使用unless-stopped重启策略?
    一个服务器上有很多容器,其中一些是我手动停止的(主动行为)。这些容器即使重启服务器或重启docker守护进程之后,我也不希望它们自动运行。所以我不用always。
    在重启服务器或重启docker守护进程之前,处于良好运行状态的容器,在重启服务器或重启docker守护进程之后,通常也不会出现因程序运行错误导致的无法重启的问题,所以我不用on-failure。

三、守护进程停止期间保证容器服务正常
本文以上讨论的都是服务器重启、docker守护进程重启之后如何保证容器的运行状态,并且尽量不需要人工参与。本小节主要说明的内容是:假如我们要升级docker的版本,我们要停止docker的守护进程,但是我们不想影响容器向用户提供服务。即:docker守护进程停了,想要保证docker容器进程仍然运行,这该怎么做?
默认情况下,当 Docker 守护进程终止时,它会关闭基于它运行的所有容器。但是可以通过配置方式,在守护程序进程不可用时保持容器运行。此功能称为live-restore。live-restore有助于减少由于守护进程崩溃、计划中断或升级导致的容器停止服务的时间。

  1. {
  2.   "live-restore": true
  3. }
复制代码
配置方式就是在/etc/docker/daemon.json配置文件中加入上面的一行,这样守护进程停止之后,容器不会停止服务。

免责声明:
1,海欣资源网所发布的资源由网友上传和分享,不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
2,海欣资源网的资源来源于网友分享,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3,海欣资源网所发布的资源由网友上传和分享,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
4,如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉,联系方式邮箱 haixinst@qq.com
海欣资源-企业信息化分享平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

41

主题
热度排行
回复排行
最新贴子

Archiver|手机版|海欣资源 ( 湘ICP备2021008090号-1 )|网站地图

GMT+8, 2024-11-11 16:36 , Gzip On, MemCached On.

免责声明:本站所发布的资源和文章均来自网络,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉。