外部监控 + 强制重启(适配特殊场景)
若 Docker 原生策略不满足(如需更灵活的重启逻辑),可通过「脚本 + 定时任务」或工具实现监控重启。
方案 1:Shell 脚本监控(简单易实现)
编写脚本检测容器健康状态,不健康则强制重启:
bash
#!/bin/bash
# 定义要监控的容器名
CONTAINER_NAME="nginx-health"
# 循环检测(每15秒一次)
while true; do
# 获取容器健康状态(healthy/unhealthy/starting)
HEALTH_STATUS=$(docker inspect --format '{
{.State.Health.Status}}' $CONTAINER_NAME 2>/dev/null)
# 若状态为 unhealthy,重启容器
if [ "$HEALTH_STATUS" = "unhealthy" ]; then
echo "$(date): 容器 $CONTAINER_NAME 不健康,重启中..."
docker restart $CONTAINER_NAME
fi
sleep 15
done
脚本使用方式
- 保存为
docker_health_restart.sh,赋予执行权限:chmod +x docker_health_restart.sh - 后台运行脚本:
nohup ./docker_health_restart.sh > docker_health.log 2>&1 & - (可选)加入开机自启:编辑
/etc/rc.local,添加:
nohup /path/to/docker_health_restart.sh &g

最低0.47元/天 解锁文章
2563

被折叠的 条评论
为什么被折叠?



