学习优先级:★★★★☆
易用性:★★★☆☆
在 Docker Compose 中,healthcheck 参数用于定期检查容器的可用性和功能性。这有助于确保服务在其他服务访问之前正确运行。
healthcheck 可以检查特定端口是否开放或某个进程是否运行,并据此将容器的状态标记为“健康”或“不健康”。
示例代码
version: '3'
services:
web:
image: nginx
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
执行结果
运行此配置后,容器每 30 秒检查一次。如果 Web 服务器不可用,容器的状态将被标记为“不健康”。
补充说明
healthcheck 参数的各个字段说明:
test:定义检查命令。如果命令返回状态码 0,则检查通过。interval:检查间隔时间。timeout:单次检查的超时时间。retries:连续失败次数达到此值时,容器状态才标记为“不健康”。start_period:容器启动后,开始执行健康检查前的等待时间。
补充说明
当容器被标记为“不健康”时,可以使用 Docker Swarm 或 Kubernetes 等工具来自动修复或重启容器。这有助于提高系统的可靠性和可用性。