检查规则

  1. 容器启动后,容器状态中显示health:starting。
  2. 经过start-period时间后开始,以interval为间隔周期性在容器中执行CMD。即:当一次命令执行完毕后,经过interval时间,执行下一次命令。
  3. 若CMD命令在timeout限制的时间内执行完毕,并且返回值为0,则视为一次检查成功。否则视为一次检查失败。检查成功后,容器状态变为health:healthy。
  4. 若CMD命令连续retries次检查失败,则容器状态变为health:unhealthy。失败后容器也会继续进行健康检查。
  5. 容器状态为health:unhealthy时,任意一次检查成功会使得容器状态变为health:healthy。
  6. 设置—exit-on-unhealthy的情况下,如果容器因为非被杀死退出(退出返回值137)后,健康检查只有容器在重新启动后才会继续生效。
  7. CMD执行完毕或超时时,docker daemon会将这次检查的起始时间、返回值和标准输出记录到容器的配置文件中。最多记录5条。此外,容器的配置文件中还存储着健康检查的相关参数。
  8. 运行中的容器的健康检查状态也会被写入容器配置中。通过isula inspect可以看到。
  1. "Health": {
  2. "Status": "healthy",
  3. "FailingStreak": 0,
  4. "Log": [
  5. {
  6. "Start": "2018-03-07T07:44:15.481414707-05:00",
  7. "End": "2018-03-07T07:44:15.556908311-05:00",
  8. "ExitCode": 0,
  9. "Output": ""
  10. },
  11. {
  12. "Start": "2018-03-07T07:44:18.557297462-05:00",
  13. "End": "2018-03-07T07:44:18.63035891-05:00",
  14. "ExitCode": 0,
  15. "Output": ""
  16. },
  17. ......
  18. }