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

你可能感兴趣的:(healthcheck+autoheal实现监控并重启不健康的docker容器)