Docker容器的重启策略指的是针对生产环境的一个启动策略,在开发的过程中是可以忽略该策略的。Docker容器的重启都是由Docker守护进程完成的,因此Docker容器的重启与守护进程紧密相连。
Docker容器的重启策略如下:
1. no——默认策略,在容器退出时不重启容器
2.on-failure——在容器非正常退出时,才会重启容器
3. always——在容器退出时总是重启容器
4.on-failure:3——在容器非正常退出时重启容器,最多重启3次
5.unless-stopped——在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
Docker容器的退出状态码
docker run的退出状态码如下:
0,代表的是正常退出
非0,代表的是异常退出,退出状态码采用的是chroot标准
125,指的是Docker守护进程本身的错误
126,是指容器启动后,要执行的默认命令无法调用
127,是指容器启动后,要执行的默认命令不存在
其他命令状态码,容器启动后正常执行命令,退出命令时该命令的返回状态码作为容器的退出状态码
docker run的--restart选项
通过--restart选项,可以设置容器的重启策略,从而确定在容器退出时Docker守护进程是否重启刚才退出的容器。
--restart选项一般只用于detached模式的容器。
--restart选项不可以与--rm选项同时使用。显然,--restart选项适合于detached模式的容器,而--rm选项适合foreground模式的容器。
在docker ps查看容器时,对于使用了--restart选项的容器,其可能的状态只有Up或Restarting两种状态。
另外补充一点,就是查看容器重启次数
Docker inspect -f "{{ .RestartCount }}" ba-208
查看容器最后一次的启动时间
Docker inspect -f "{{ .State. StartedAt }}" ba-208