我通过在docker文件中添加health check命令实现了Docker本机健康检查,如下所示,
HEALTHCHECK --interval=60s --timeout=15s --retries=3 CMD ["/svc/app/healthcheck/healthCheck.sh"]设置容器的入口点
CMD [".././run.sh"] 执行停靠器运行命令,如下所示,
docker run -d --net=host --pid=host --publish-all=true -p 7000:7000/udp applicationname:temp当我的应用程序没有启动,并且我可以看到容器状态不健康时,healthCheck.sh将退出1,但它不会重新启动。
STATUS
Up 45 minutes (unhealthy)下面是码头和操作系统的详细信息:
[root@localhost log]# docker -v
Docker version 18.09.7, build 2d0083dOS版本
NAME="CentOS Linux"
VERSION="7 (Core)"当容器变得不健康时,如何自动重新启动它?
发布于 2019-08-17 10:40:07
Docker只报告健康检查的状态。根据健康检查的结果,需要在码头上额外运行一层。S批模式提供了此功能,并随码头引擎一起提供。使:
docker swarm init然后,不再使用docker run管理单个容器,而是使用docker service或docker stack命令声明目标状态,而群集模式将管理容器以实现目标状态。
docker service create -d --net=host applicationname:temp请注意,主机网络和发布端口是不兼容的(它们在逻辑上没有任何意义),net需要两个破折号才能成为一个有效的标志,并且在群集模式中不支持更改pid命名空间。许多其他特性应该与docker run类似。
https://stackoverflow.com/questions/57535192
复制相似问题