云原生之深入解析Docker容器的health健康状态检查

这篇具有很好参考价值的文章主要介绍了云原生之深入解析Docker容器的health健康状态检查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Docker 的原生健康检查能力

  • 自 1.12 版本之后,Docker 引入了原生的健康检查实现。对于容器而言,最简单的健康检查是进程级的健康检查,即检验进程是否存活。Docker Daemon 会自动监控容器中的 PID1 进程,如果 docker run 命令中指明了 restart policy,可以根据策略自动重启已结束的容器。
  • 在很多实际场景下,仅使用进程级健康检查机制还远远不够。比如,容器进程虽然依旧运行却由于应用死锁无法继续响应用户请求,这样的问题是无法通过进程监控发现的。
  • 容器启动之后,初始状态会为 starting (启动中),Docker Engine 会等待 interval 时间,开始执行健康检查命令,并周期性执行。如果单次检查返回值非 0 或者运行需要比指定 timeout 时间还长,则本次检查被认为失败。如果健康检查连续失败超过了 retries 重试次数,状态就会变为 unhealthy(不健康)。
  • 注:
    • 一旦有一次健康检查成功,Docker 会将容器置回 healthy(健康)状态;
    • 当容器的健康状态发生变化时,Docker Engine 会发出一个 health_status 事件。

二、Dockerfile 方式

  • 可以在 Dockerfile 中声明应用自身的健康检测配置,HEALTHCHECK 指令声明了健康检测命令,用这个命令来判断容器主进程的服务状态是否正常,从而比较真实的反应容器实际状态。
  • HEALTHC

文章来源地址https://www.toymoban.com/news/detail-487882.html

到了这里,关于云原生之深入解析Docker容器的health健康状态检查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生之深入解析Docker容器退出码的含义和产生原因

    为什么我的容器没有运行?回答这个问题之前,需要知道 Docker 容器为什么退出?退出码会提示容器停止运行的情况? 本文列出最常见的退出码,来回答两个重要问题:这些退出码是什么意思?导致该退出码的动作是什么?exit code:代表一个进程的返回码,通过系统调用 ex

    2024年02月07日
    浏览(41)
  • 深入云原生:解析 Docker 容器、Serverless 计算和微服务架构的实战应用

    今天我想跟大家聊聊云计算的一些新潮玩意儿,我对云计算领域的一些前沿技术本身就特别感兴趣,比如 Docker 容器、Serverless 计算、微服务架构以及云原生架构。这些技术在数字化浪潮中扮演着重要角色,不仅改变了软件开发和部署的方式,还大大提高了企业的运营效率和市

    2024年04月10日
    浏览(43)
  • 云原生之深入解析Docker容器的核心Cgroups的相关概念和使用实现

    Cgroups 是 Linux 系统内核提供的一种机制,这种机制可以根据需求将一些列系统任务机器子任务整合或分离到按资源划分登记的不同组内,从而为系统资源管理提供一个的框架。简单地说,Cgroups 可以限制、记录任务组所使用的物理组员(比如 CPU、Memory、IO等),为容器实现虚

    2024年02月12日
    浏览(29)
  • elasticsearch索引health 健康状态变为yellow,red处理

    查看所有索引健康状态 看到所有索引都出现yellow,red 1.绿色——最健康的状态,代表所有的主分片和副本分片都可用; 2 黄色——所有的主分片可用,但是部分副本分片不可用; 3 红色——部分主分片不可用。(此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快

    2024年02月11日
    浏览(37)
  • 云原生之深入解析Kubernetes中如何使用临时容器进行故障排查

    容器及其周围的生态系统改变了工程师部署、维护和排查工作负载故障的方式。但是,在 Kubernetes 集群上调试应用程序有时可能会很困难,因为可能在容器中找不到所需的调试工具。许多工程师使用基于精简、发行版构建无发行版的基础镜像,其中甚至没有包管理器或shell,

    2024年02月05日
    浏览(34)
  • 云原生之深入解析如何正确计算Kubernetes容器CPU使用率

    使用 Prometheus 配置 kubernetes 环境中 Container 的 CPU 使用率时,会经常遇到 CPU 使用超出 100%,现在来分析一下: container_spec_cpu_period:当对容器进行 CPU 限制时,CFS 调度的时间窗口,又称容器 CPU 的时钟周期通常是 100000 微秒 container_spec_cpu_quota:是指容器的使用 CPU 时间周期总量

    2024年02月10日
    浏览(52)
  • 【云原生-Docker】docker容器自定义DNS解析

    在特定的情况下,或者在网络策略特殊定义下,需要自定义dns进行域名访问,在宿主机上配置了域名解析,对于docker容器无效。 对于局域网内的域名解析,Docker 需要到 Docker 容器中配置 hosts 文件 。 docker-compose配置【推荐】 通过增加 extra_hosts 属性 进行host配置 进入容器内部

    2024年02月03日
    浏览(30)
  • 云原生之深入解析Docker如何开启IPv6

    在 Docker 中,网络是一个重要抽象,一个 Docker 可以有多个网络,每个容器可以连接到一个或多个中。docker 安装完成后,会自动创建三个网络,分别是 bridge、host 和 none。 通过 docker network ls 命令可以查看: 其中名字为 bridge 的 bridge 类型网络,就是 docker 的默认网络(docker r

    2024年02月10日
    浏览(34)
  • 软件测试|深入解析Docker Run命令:创建和启动容器的完全指南

    简介 Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是 docker run ,用于创建和启动容器。本文将详细解析 docker run 命令的用途、参数和示例,帮助您全面掌握创建和启动容器的过程。 docker run 在Docker中,容器是运行应用程序

    2024年02月09日
    浏览(27)
  • 使用Docker快速搭建并优化Redmine环境:日志管理与健康检查指南

    Redmine是一种开源的项目管理和问题跟踪工具,它以Web应用程序的形式提供。Redmine的主要功能包括项目管理、问题跟踪、版本控制集成、Wiki和论坛等。它是用Ruby on Rails开发的,支持多语言和多数据库。Redmine的灵活性和可扩展性使其成为许多组织和团队用于协作和项目管理的

    2024年04月28日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包