概述
docker 如何在容器崩溃时自动重启呢?docker run自带的 restart 命令就可以轻松做到这一点。本篇博客分享一下这个命令的使用。
docker restart
--restart 策略
命令 作用 备注
no 默认策略,在容器退出时不重启容器
on-failure 在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 在容器非正常退出时重启容器,最多重启3次
always 在容器退出时总是重启容器
unless-stopped 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
推荐使用unless-stopped 不显示的退出容器就会重启。
docker run的退出状态码如下:
0,表示正常退出
非0,表示异常退出(退出状态码采用chroot标准)
125,Docker守护进程本身的错误
126,容器启动后,要执行的默认命令无法调用
127,容器启动后,要执行的默认命令不存在
其他命令状态码,容器启动后正常执行命令,退出命令时该命令的返回状态码作为容器的退出状态码
--restart选项通常只用于detached模式的容器。
--restart选项不能与--rm选项同时使用。显然,--restart选项适用于detached模式的容器,而--rm选项适用于foreground模式的容器。
--rm选项表示退出容器时会自动将其删除
对于foreground容器,由于其只是在开发调试过程中短期运⾏,其⽤户数据并⽆保留的必要,因⽽可以在容器启动时设
置--rm选项,这样在容器退出时就能够⾃动清理容器内部的⽂件系统。
-d 使用docker守护进程的方式启动,用来实现dettach的作用,即对于你docker run的前台进程,该进程不对容器进行stdin,stdout,stderr的attach
启动容器的时候添加重启参数和策略:
docker run -d --restart 策略 容器
举例:
docker run -d --restart unless-stopped tomcat
已经运行容器添加重启参数:
假如你docker run启动容器的时候并没有进行加入重启参数,那么就需要执行以下命令:
docker container update --restart=策略 容器名字
docker container update --restart=always mysql
查看容器启动参数和最后一次启动时间:
查看容器启动次数命令:
docker inspect -f "{{ .RestartCount }}" 容器
查看容器最后一次启动时间:
docker inspect -f "{{ .State.StartedAt }}" 容器
版权声明
本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途
评论区#
还没有评论哦,期待您的评论!
引用发言