返回主站|会员中心|保存桌面|手机浏览
普通会员

百大专升本

结婚礼物,生日礼物,祝寿礼物,订婚礼物,高升祝贺送礼,喜得贵子祝贺送礼,感恩...

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > 云计算核心技术Docker教程:Dockerfile文件HEALTHCHECK命令详解
新闻中心
云计算核心技术Docker教程:Dockerfile文件HEALTHCHECK命令详解
发布时间:2020-11-07        浏览次数:0        返回列表

  HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令。

  在没有 HEALTHCHECK 指令前,Docker 引擎只可以通过容器内主进程是否退出来判断容器是否状态异常。很多情况下这没问题,但是如果程序进入死锁状态,或者死循环状态,应用进程并不退出,但是该容器已经无法提供服务了。在 1.12 以前,Docker 不会检测到容器的这种状态,从而不会重新调度,导致可能会有部分容器已经无法提供服务了却还在接受用户请求。

  而自 1.12 之后,Docker 提供了 HEALTHCHECK 指令,通过该指令指定一行命令,用这行命令来判断容器主进程的服务状态是否还正常,从而比较真实的反应容器实际状态。

  当在一个镜像指定了 HEALTHCHECK 指令后,用其启动容器,初始状态会为 starting,在 HEALTHCHECK 指令检查成功后变为 healthy,如果连续一定次数失败,则会变为 unhealthy。

  --timeout=<时长>:健康检查命令运行超时时间,如果超过这个时间,本次健康检查就被视为失败,默认 30 秒;

  在 HEALTHCHECK [选项] CMD 后面的命令,格式和 ENTRYPOINT 一样,分为 shell 格式,和 exec 格式。命令的返回值决定了该次健康检查的成功与否:0:成功;1:失败;2:保留,不要使用这个值。

  为了帮助排障,健康检查命令的输出(包括 stdout 以及 stderr)都会被存储于健康状态里,上海飞河泵业有限公司深圳艾慕瑞实业有限公司可以用 docker inspect 来查看。