healthcheck+autoheal实现监控并重启不健康的docker容器

1. 运行autoheal容器,监控并重启不健康的 docker 容器

docker run -d \
    --name autoheal \
    --restart=always \
    -e AUTOHEAL_CONTAINER_LABEL=all \
    -v /var/run/docker.sock:/var/run/docker.sock \
    willfarrell/autoheal

autoheal容器:https://hub.docker.com/r/willfarrell/autoheal/

2. Dockerfile

在Dockerfile里面定义镜像的healthcheck可以应用到基于这个镜像的所有容器。

# healthcheck
HEALTHCHECK --interval=5s --timeout=5s \
CMD curl -sS 'http://localhost:9200' || exit 1

这是一个Elasticsearch的健康状态检查,通过curl检查本地主机localhost上面的9200端口是否可以联通,如果无法联通就返回状态码1,因为返回非零状态码Docker就会认为当前容器的状态是不健康的。

健康检查 (HEALTHCHECK) 指令简介: https://beginor.github.io/2018/03/11/healthy-check-instruction-of-docker.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容