如何在docker容器中添加python代码的运行状况检查

问题描述 投票:3回答:1

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

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

我有一个python代码,我已转换为docker图像,其容器运行正常。我在容器中服务运行良好,但我想对此服务进行健康检查。使用以下命令启动/停止:

service <myservice> start

service <myservice> stop

该服务负责将数据发送到服务器。我需要对此进行健康检查,但不知道该怎么做。我搜索过这个并没有找到任何例子。任何人都可以指出我正确的链接或可以解释它。

谢谢

docker
1个回答
1
投票

运行状况检查命令不是神奇的,而是可以自动执行以获得更好的服务状态。

在设置健康检查之前,您应该问自己一些问题:

  • 我通常如何验证服务是否正常运行,假设我正常运行而不是在容器内运行,这不是一个自动化过程,而是我自己检查状态是否正在执行
  • 如果服务没有打开端口,可以查询,是否在文件中的磁盘上写入成功/失败状态?
  • 如果服务有开放端口,但它在自定义协议上进行通信,我是否有任何工具可用于询问开放端口

让我们看一下你列出的curl命令:它表示列出的运行状况检查是监视在端口3000上启动的http服务。如果返回的http状态代码不是200,curl命令将失败。这非常简单地证明了运行状况检查的用法。

假设您每30秒从服务中将successfailure写入文件,那么您的健康检查将是一个在遇到failure文本时异常退出的脚本

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

等等...

© www.soinside.com 2019 - 2024. All rights reserved.