容器 running 不等于服务活着。健康检查让编排器知道该不该把流量发给它。
示例配置
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
CMD curl -f http://localhost/health || exit 1
# compose 里
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
要点速览
- HEALTHCHECK 探测真实业务端口/路径,而非只看进程在。
- 连续失败达 retries 才标记 unhealthy,避免抖动误判。
- 配合编排的 restart 策略,挂了自动拉起。
健康检查回答的是「服务能干活吗」,而不只是「进程在吗」。