码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 表示未知,即系统不知道具体错误的原因。这时候就需要看具体的日志来判断。

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

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

    • 使用update命令
    1. [root@k8s-master /]# docker container update --restart=always 3e64cad716c0
    2. 3e64cad716c0
    • 修改容器的配置文件

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

    "RestartPolicy:{"Name":"no","MaximumRetryCount":0}

    修改后:

    "RestartPolicy:{"Name":"always","MaximumRetryCount":0}

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

  • 相关阅读:
    四 软件架构风格、质量属性、Web架构设计
    MySQL语句大总结
    【SpringBoot | 过滤器/拦截器/AOP/控制器】的区别
    《现代命令行工具指南》11. 帮助手册:只给你最有用的帮助信息 - tldr
    编程新时代:Amazon CodeWhisperer 助您轻松驾驭代码世界
    文盘Rust -- 生命周期问题引发的 static hashmap 锁 | 京东云技术团队
    详解 Apache SkyWalking OAP 的分布式计算
    pycharm2023关闭项目后一直显示正在关闭项目-解决办法
    开源组件 | 一款好用的小程序生成图片库
    GBDT之GradientBoostingRegressor参数详解以及调参
  • 原文地址:https://blog.csdn.net/m0_48638643/article/details/132846191
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号