Docker容器使用Dockerfile的TCP heathcheck?

我们可以在Dockerfile中使用下面的语法来进行HTTP健康检查。

HEALTHCHECK --interval=5s --timeout=3s CMD curl --fail http://localhost/feeds/check || exit 1 

我想知道如果我想使用TCP健康检查?

PS-不知道是否docker本身支持它,我们不需要任何额外的configuration。

Docker健康检查是通过运行你在容器中的任何命令并检查返回代码来实现的。 所以,如果你安装了curl和jq,你可以parsing一些json的输出来确定健康状况。

对于你的tcp端口,只需在你的映像中包含需要的可执行文件,然后运行该命令来testing它作为你的健康检查。 该可执行文件可能是您的应用程序客户端,可能是netstat来检查端口是否正在侦听,或者它可能是网猫来实现您自己的手动testing。

HTTPdevise为仅通过TCP协议工作,因此HTTP健康检查将反映TCP链路的健康状况。