当前位置: 首页 > 面试题库 >

根据运行状况检查重启不健康的Docker容器

韩峰
2023-03-14
问题内容

我正在使用Docker version 17.09.0-ce,并且看到容器被标记为不健康。是否可以选择重新启动容器而不是使容器保持不正常状态?


问题答案:

不健康容器功能的重新启动是在原始PR(https://github.com/moby/moby/pull/22719)中的,但是在讨论后被删除,并认为以后会作为RestartPolicy的增强来完成。

目前,您可以使用以下解决方法自动重启不健康的容器:https://hub.docker.com/r/willfarrell/autoheal/

这是一个示例撰写文件:

version: '2'
services:
  autoheal:
    restart: always
    image: willfarrell/autoheal
    environment:
      - AUTOHEAL_CONTAINER_LABEL=all
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

只需执行docker-compose up -d



 类似资料:
  • 我有一个ECS集群,它有多个节点(任务定义),由应用程序负载平衡器前置。在负载平衡器和容器级别(在任务定义内)配置健康检查有意义吗? 负载平衡器对每个注册的目标运行配置的健康检查,以便注销故障节点。在容器级别设置健康检查可以完成相同的事情:ECS将注销任何未通过健康检查的容器(根据您的配置)。ECS将始终实例化更多任务定义实例,以满足您所需的计数。 对我来说,如果任务定义只有一个容器,那么只在负载

  • Amazon ECS支持两种不同类型的健康检查: 目标组健康检查发出可配置的网络请求 容器健康检查在docker容器中运行,可以配置为运行容器支持的任何shell命令 如果两个健康检查都配置了,那么哪一个会赢?如果其中一个失败,服务是否标记为不健康?或者两者都有?我可以将一个配置为覆盖另一个吗? 我非常希望目标组的健康状态不会导致ECS不断跳出服务,我希望可以使用容器健康检查来覆盖它。

  • 本文向大家介绍coldfusion 健康)状况,包括了coldfusion 健康)状况的使用技巧和注意事项,需要的朋友参考一下 示例 标签语法 参数 属性 需要 类型 默认 描述 健康)状况 真正 串 管理循环的条件。不能包含像数学符号<,>或=。必须使用ColdFusion的文本实现比如less than,lt,greater than,gt,equals或eq。 最终值为x5。 生成的HTML

  • 在设置ELB健康检查的对话框中,它会声明: 如果实例未通过健康检查,它将自动从负载均衡器中删除。自定义健康检查以满足您的特定需要。 当健康检查失败时,将从ELB后面删除实例。我的问题是围绕“健康门槛”设置。当你悬停在帮助上时,它会说: 在声明EC2实例健康之前连续运行状况检查成功的次数。 如果实例声明为健康的,它是否被拉回负载平衡组?

  • SOFABoot 为 Spring Boot 的健康检查能力增加了 Readiness Check 的能力。如果你需要使用 SOFA 中间件,那么建议使用 SOFABoot 的健康检查能力的扩展,来更优雅的上线应用实例 引入健康检查扩展 要引入 SOFABoot 的健康检查能力的扩展,只需要引入以下的 Starter 即可: <dependency> <groupId>com.alipay

  • 问题是,我的数据库容器需要比启动我的主应用程序的容器更多的时间来启动和初始化数据库。结果:主容器无法正确启动,导致缺少数据库连接。我编写了一个healthcheck.sh脚本来检查数据库容器的连通性,因此主容器在连通性可用后开始引导。但我不知道如何在Dockerfile和我的docker-compose.yml中正确地集成它 healthcheck.sh类似于: mysql容器DockerFile