自动重启unhealthy状态的容器

· devopsnote's blog


docker 容器经常卡住,不会自动重启

配置 HEALTHCHECK #

Dockerfile 配置 HEALTHCHECK

HEALTHCHECK --interval=5s --timeout=3s \
    CMD curl -fs http://localhost:30000/health || exit 1

关于 HEALTHCHECK

在 Dockerfile 中,HEALTHCHECK 指令用于指定容器的健康检查。健康检查的作用是定期检查容器的状态,并确定它是否正常运行

方案一:cronjob 定时检查容器状态 #

增加 cronjob 定时检查容器状态,如果容器状态不正常,重启容器

* * * * * docker ps -f health=unhealthy --format "docker restart {{.ID}}" | sh

ref: https://stackoverflow.com/questions/47088261/restarting-an-unhealthy-docker-container-based-on-healthcheck

方案二:使用 docker-autoheal #