重启策略
Docker 容器的重启策略如下:
no
:默认策略,在容器退出时不重启容器。启动容器时候不添加参数--restart
即可。on-failure
:在容器非正常退出时(退出状态非0),才会重启容器。always
:只要容器退出就重启容器。unless-stopped
:在容器退出时总是重启容器,但是 Docker 守护进程启动之前就已经停止运行的容器不包括在内。
Docker 容器退出状态码
Docker 容器也有退出状态码,类似 Linux 命令。Docker 容器的重启策略就是基于状态码。具体如下:
0:表示容器正常退出。例如 stop 容器。
非0:表示容器退出异常(退出状态码采用 chroot 标准)。例如执行
docker run
失败后的容器退出。125:Docker 守护进程本身有错误。
126:容器启动后,要执行的默认命令无法调用
127:容器启动后,要执行的默认命令不存在。
其他命令状态码:容器启动后在容器内部执行命令,该命令退出时的返回状态码,就作为容器的退出状态码。
获取退出码
使用 docker ps -a
如下所示:Exited(1) 33 minutes ago
,1 就是这个容器的退出状态码。
使用inspect命令
inspect
命令是用来获取容器的命令,配合其他参数就能获取容器的退出状态码。如下所示
--restart 参数说明
--restart
选项通常只用于detached
(后台运行模式)模式的容器。--restart
选项不能与--rm
选项同时使用。因为--rm
选项只适用于 foreground 模式的容器。在
docker ps
查看容器时,对于使用了--restart
选项的容器,其可能的状态只有 Up 或 Restarting 两种状态。
最后更新于
这有帮助吗?