HEALTHCHECK
核心概念
# 定义健康检查
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
CMD curl -f http://localhost:8080/health || exit 1
参数说明
| 参数 | 默认值 | 说明 |
|---|
--interval | 30s | 检查间隔 |
--timeout | 30s | 超时时间 |
--start-period | 0s | 启动等待时间 |
--retries | 3 | 失败次数后标记 unhealthy |
常用检查方式
# HTTP 检查
HEALTHCHECK CMD curl -f http://localhost/health || exit 1
# TCP 检查
HEALTHCHECK CMD nc -z localhost 8080 || exit 1
# 进程检查
HEALTHCHECK CMD pgrep my-app || exit 1
查看状态
docker ps
docker inspect --format='{{.State.Health.Status}}' my-app
小结
| 语法 | 说明 |
|---|
HEALTHCHECK | 定义健康检查 |
healthy | 检查通过 |
unhealthy | 检查失败 |