本文为你们介绍容器自启动以及docker守护进程死掉或则docker升级的情况下linux系统iso下载,怎样保证容器服务的正常运行。主要包含三个部份内容
三、守护进程停止期间保证容器服务正常
一、守护进程开机自启
在我们安装docker的时侯linux 关机命令,介绍过启动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
假如我们早已存在一个运行时容器linux启动计划任务,想让它降低容器自启动的能力,使用如下命令即可
docker update --restart unless-stopped nginx
重启策略说明
unless-stopped是笔者比较常用的重启策略linux启动计划任务,除此之外docker还提供了其他的重启策略,--restart的值可以是以下任何一种:
重启策略标志描述no不要手动重启容器。(默认)on-failure[:max-retries]假如容器因程序运行错误退出(非正常退出),则重新启动容器。可选项配置:max-retries表示尝试重新启动容器的最大次数,超过这个次数还启动失败就不重启了。always假如容器处于停止状态,则仍然重新启动容器。例外情况:假如该容器是运维人员自动停止的,只有在Docker守护进程发生重启或则容器本身自动重启以后,才能继续always重启策略。unless-stopped在停止Docker守护程序之前早已处于停止状态的容器,不会执行重启。其他的和always一样。
「为什么我经常使用unless-stopped重启策略?」
三、守护进程停止期间保证容器服务正常
本文以上讨论的都是服务器重启、docker守护进程重启以后怎么保证容器的运行状态,而且尽量不须要人工参与。本小节主要说明的内容是:如果我们要升级docker的版本,我们要停止docker的守护进程,而且我们不想影响容器向用户提供服务。即:「docker守护进程停了,想要保证docker容器进程一直运行,这该如何做?」
默认情况下,当Docker守护进程中止时,它会关掉基于它运行的所有容器。并且可以通过配置方法,在守护程序进程不可用时保持容器运行。此功能称为live-restore。live-restore有助于减轻因为守护进程崩溃、计划中断或升级引起的容器停止服务的时间。
{
"live-restore": true
}
配置方法就是在/etc/docker/daemon.json配置文件中加入前面的一行,这样守护进程停止以后,容器不会停止服务。