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

时间:2018-01-04 09:57:50

标签: docker

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

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

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

service <myservice> start

service <myservice> stop

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

由于

1 个答案:

答案 0 :(得分:1)

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

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

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

  • 如果服务没有打开端口,可以查询,是否在文件中的磁盘上写入成功/失败状态?

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

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

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

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

等等......