我通过在 Docker 文件中添加 HEALTHCHECK 命令来实现 docker 本机健康检查,如下所示,
HEALTHCHECK --interval=60s --timeout=15s --retries=3 CMD ["/svc/app/healthcheck/healthCheck.sh"]
Run Code Online (Sandbox Code Playgroud)
设置容器的入口点
CMD [".././run.sh"]
Run Code Online (Sandbox Code Playgroud)
执行 docker run 命令如下所示,
docker run -d --net=host --pid=host --publish-all=true -p 7000:7000/udp applicationname:temp
Run Code Online (Sandbox Code Playgroud)
当我的应用程序未启动并且我可以看到容器状态为不健康,但它没有重新启动时,healthCheck.sh 将以 1 退出。
STATUS
Up 45 minutes (unhealthy)
Run Code Online (Sandbox Code Playgroud)
以下是 docker 和操作系统的详细信息:
[root@localhost log]# docker -v
Docker version 18.09.7, build 2d0083d
Run Code Online (Sandbox Code Playgroud)
操作系统版本
NAME="CentOS Linux"
VERSION="7 (Core)"
Run Code Online (Sandbox Code Playgroud)
当容器变得不健康时如何自动重新启动容器?