docker——重启策略

参考网址

docker的重启策略

Docker 容器的重启策略具体如下:

  • no
    默认策略,在容器退出时不重启容器。启动容器时不添加参数 --restart 即可。
  • on-failure
    在容器非正常退出时(退出状态非0),才会重启容器。
  • on-failure:n
    在容器非正常退出时重启容器,并且指定重启次数。n 为正整数。如果不指定次数,则会一直重启。
  • always
    只要容器退出就重启容器。
  • unless-stopped
    在容器退出时总是重启容器,但是 Docker 守护进程启动之前就已经停止运行的容器不算在内。

docker容器的退出状态码

Docker 容器也有退出状态码,这一点类似 Linux 命令。Docker 容器的重启策略就是基于状态码。具体如下:

  • 0
    表示容器正常退出。例如 stop 容器。
  • 非 0
    表示容器退出异常(退出状态码采用 chroot 标准)。例如执行 docker run 失败后的容器退出。
  • 125
    Docker 守护进程本身有错误。
  • 126
    容器启动后,要执行的默认命令无法调用。
  • 127
    容器启动后,要执行的默认命令不存在。
  • 其他命令状态码
    容器启动后在容器内部执行命令,该命令退出时的返回状态码,就作为容器的退出状态码

获取docker容器退出状态码的方法

  • 使用docker ps -a的方法

该命令结果的第 5 列中 Exited 后面括号中的数字就是容器的退出状态码。如下所示,Exited (1) 33 minutes ago,1 就是这个容器的退出状态码。但是 1 并不是容器本身的退出状态码,而是容器中运行的命令执行失败后退出的状态码。在 Linux 系统定义的命令退出状态码中,1 表示未知,即系统不知道具体错误的原因。这时候就需要看具体的日志来判断。

复制代码
[root@k8s-master /]# docker ps -a | grep nginx
3e64cad716c0   192.168.100.20:5000/mynginx:latest   "nginx"   36 minutes ago   Exited (1) 33 minutes ago    nginx-demo

容器已经启动,但是忘记使用--restart=always如何补救?

  • 使用update命令

    [root@k8s-master /]# docker container update --restart=always 3e64cad716c0
    3e64cad716c0

  • 修改容器的配置文件

vim /var/lib/docker/containers/容器ID/hostconfig.json,找到关键字 RestartPolicy,将 no 改为 always

修改前:

复制代码
"RestartPolicy:{"Name":"no","MaximumRetryCount":0}

修改后:

复制代码
"RestartPolicy:{"Name":"always","MaximumRetryCount":0}

重启容器即可。如果无法修改容器的配置,可先将容器停止,修改配置文件后再启动。

相关推荐
SelectDB14 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽21 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker