1. Docker容器的重启策略
Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。
Docker容器的重启都是由Docker守护进程完成的,因此与守护进程息息相关。
Docker容器的重启策略如下:
-
no,默认策略,在容器退出时不重启容器
-
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
-
on-failure:3,在容器非正常退出时重启容器,最多重启3次
-
always,在容器退出时总是重启容器
-
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
2. Docker容器的退出状态码
docker run的退出状态码如下:
-
0,表示正常退出
-
非0,表示异常退出(退出状态码采用chroot标准)
-
125,Docker守护进程本身的错误
-
126,容器启动后,要执行的默认命令无法调用
-
127,容器启动后,要执行的默认命令不存在
-
其他命令状态码,容器启动后正常执行命令,退出命令时该命令的返回状态码作为容器的退出状态码
3. docker run的--restart选项
通过--restart选项,可以设置容器的重启策略,以决定在容器退出时Docker守护进程是否重启刚刚退出的容器。
--restart选项通常只用于detached模式的容器。
--restart选项不能与--rm选项同时使用。显然,--restart选项适用于detached模式的容器,而--rm选项适用于foreground模式的容器。
在docker ps查看容器时,对于使用了--restart选项的容器,其可能的状态只有Up或Restarting两种状态。
示例:
docker run -d --restart=always ba-208
docker run -d --restart=on-failure:10 ba-208
查看容器重启次数
docker inspect -f "{
{ .RestartCount }}" ba-208
查看容器最后一次的启动时间
docker inspect -f "{
{ .State.StartedAt }}" ba-208
参考链接:
https://docs.docker.com/engine/reference/run/
1. Docker容器的重启策略Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。Docker容器的重启都是由Docker守护进程完成的,因此与守护进程息息相关。Docker容器的重启策略如下:no,默认策略,在容器退出时不重启容器 on-failure,在容器非正常退出时(退出状态非0),才会重启容器 on-failure:3,在容器非正常退...
--
restart
=always参数能够使我们在
重启
docker
时,自动启动相关
容器
。
Docker
容器
的
重启
策略
如下:
no,默认
策略
,在
容器
退出时不
重启
容器
on-failure,在
容器
非正常退出时(退出状态非0),才会
重启
容器
on-failure:3,在
容器
非正常退出时
重启
容器
,最多
重启
3次
always,在
容器
退出时总是
重启
容器
unless-
stop
ped
,在
容器
退出时总是
重启
容器
,但是不考虑在
Docker
守护进程启动时就已经停止了的
容器
参考:
Docker
容器
的
重启
策略
及
docker
run
的
no为默认值,表示
容器
退出时,
docker
不自动
重启
容器
on-failure表示,若
容器
的退出状态非0,则
docker
自动
重启
容器
,还可以指定
重启
次数,若超过指定次数未能启动
容器
则放弃
docker
update --
restart
=on-failure:3 [
容器
名]
always表示只要
容器
退出,则dock...
容器
是镜像的运行时实例。用户也同样可以从单个镜像上启动一个或多个
容器
。
虚拟机和
容器
最大的区别是
容器
更快并且更轻量级——与虚拟机运行在完整的操作系统之上相比,
容器
会共享其所在主机的操作系统/内核。
下图为使用单个
Docker
镜像启动多个
容器
的示意图。
最近新加了一个
容器
,发现这个
容器
在
docker
服务
重启
之后不会自动起来。原来是少了--
restart
参数
docker
run
-d --
restart
=always --name=nginx 605c77e624dd--
restart
=always # 表示
容器
退出时,
docker
会总是自动
重启
这个
容器
--
restart
=on-failure:3 # 表示
容器
的退出状态码非0(非正常退出...
使用
docker
run
命令创建
容器
时没有添加参数 --
restart
=always ,导致的后果是:当
Docker
重启
时,
容器
未能自动启动。
#
docker
run
-ti -p 9501:9501 --
restart
=always -v /data/nginx:/nginx:latest
–
restart
=always : 开机启动,失败也会一直
重启
;
–
restart
=on-failure:10 : 表示最多
重启
10次
docker
run
--
restart
具体参数值详细信.
上周实验室有几台服务器中了勒索病毒,然后领导安排专人断了实验室网络,把每台服务器扫描杀毒,结果导致我开发的网站MySQL无法启动,
查看
docker
日志:
docker
container logs ci-mysql
[root@pa_cicd ~]#
docker
container logs ci-mysql
报错如下:
docker
-entrypoint.sh: line 72: mysqld: command not found,感觉应该是container被损坏了,要重新从备份导出一份过来
### 回答1:
docker
run
--
restart
=always 的意思是在
容器
退出时自动
重启
容器
,并且在
Docker
守护进程启动时启动
容器
。这个命令可以保证
容器
的持续运行,即使
容器
出现故障或崩溃也会自动
重启
。
### 回答2:
docker
run
--
restart
=always 是
docker
命令中的一个参数,作用是设置在
docker
服务异常退出时自动
重启
容器
。
在
容器
运行过程中,可能会出现一些问题导致
容器
异常退出,如应用程序或服务崩溃、内存溢出、网络故障等。如果不进行设置自动
重启
,这就需要手动对
容器
进行
重启
,否则服务将会中断,造成不必要的麻烦和时间浪费。
使用 --
restart
=always 参数可以在
容器
运行过程中自动
重启
,保证服务的不间断提供,提高了
容器
的可靠性和稳定性。无论是
容器
异常退出还是物理机或虚拟机故障,都能自动
重启
,保证应用可以及时恢复。同时,该参数还能让开发者更加便捷地进行
容器
的管理,提高了开发效率。
例如,使用命令
docker
run
--
restart
=always -d nginx ,启动nginx
容器
,如果在运行过程中nginx服务异常退出,
docker
服务会自动
重启
该
容器
,保证服务可以及时恢复,提高了应用程序的可靠性和稳定性。
总之,使用
docker
run
--
restart
=always 参数可以保证服务的可靠性,提高
容器
的稳定性和可靠性,为应用程序的开发和部署提供了保障。
### 回答3:
docker
run
--
restart
=always是一条
Docker
命令,用于在
容器
启动时自动
重启
容器
。当
容器
运行出现故障或其他问题导致
容器
停止,自动
重启
容器
可以确保应用程序始终处于运行状态,保持高可用性。
该命令中的--
restart
参数有多个
选项
,其中最常见的是always。使用该
选项
时,
Docker
会在
容器
异常退出时自动
重启
容器
,直到手动停止
容器
。
为了实现
容器
的自动
重启
,
Docker
会在后台运行一个
重启
策略
。当
Docker
检测到
容器
退出时,该
策略
会尝试根据预定义的规则自动
重启
容器
。
在使用
Docker
部署应用程序时,特别是在生产环境中,使用--
restart
=always是一个很好的实践,可以确保应用程序在任何情况下都可以正常运行。
总之,
Docker
的--
restart
选项
是一个很实用的功能,能够确保应用程序的高可用性和稳定性。在使用该
选项
时,需要根据实际情况选择适当的
重启
策略
,以确保应用程序的恢复能力。