【问题标题】:How to add health check for python code in docker container如何在 docker 容器中为 python 代码添加健康检查
【发布时间】:2018-06-14 00:52:15
【问题描述】:

我刚刚开始探索 docker 中的 Health Check 功能。所有在线教程都显示了相同类型的健康检查示例。喜欢这个link1link2。他们正在使用相同的命令:

HEALTHCHECK CMD curl --fail http://localhost:3000/ || exit 1

我有一个已转换为 docker 映像的 python 代码,它的容器运行良好。我在容器中有服务运行良好,但我想对该服务进行健康检查。它使用以下方式启动/停止:

service <myservice> start

service <myservice> stop

该服务负责向服务器发送数据。我需要对此进行健康检查,但不知道该怎么做。我已经搜索过这个并没有找到任何示例。谁能给我指出正确的链接或者可以解释一下吗?

谢谢

【问题讨论】:

    标签: docker


    【解决方案1】:

    运行状况检查命令并不是什么神奇的东西,而是您可以自动化以获得更好的服务状态的东西。

    在设置运行状况检查之前您应该问自己一些问题:

    • 假设我在正常运行它而不是在容器内运行它,我通常如何验证服务是否运行正常,并且它不是一个自动化过程,而是我自己检查状态

    • 如果服务没有可以被询问的开放端口,它是否愿意将其成功/失败状态写入磁盘的文件中?

    • 如果服务有开放端口,但它使用自定义协议进行通信,我是否有任何工具可以用来询问开放端口

    让我们以您列出的curl 命令为例:这意味着列出的运行状况检查正在监视在端口 3000 上启动的 http 服务。如果返回的 http 状态代码不是 200,curl 命令将失败。这很容易演示健康检查使用情况。

    假设您从服务中每 30 秒将 successfailure 写入文件,那么您的运行状况检查将是遇到 failure 文本时异常退出的脚本

    假设您的服务有一个开放端口,但通过一些自定义协议(如协议缓冲区)进行通信,那么您所要做的就是使用脚本调用它,该脚本使用 proto buf 对有效负载进行编码,然后检查接收到的输出

    等等……

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 2019-05-01
      • 2022-06-13
      • 2021-04-20
      • 2022-08-04
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多