tgbyte/autoheal该镜像为willfarrell/docker-autoheal的分支版本,继承了原镜像自动监控并恢复容器健康状态的核心能力,同时新增对已停止的不健康容器的修复功能。通过定期检查容器健康状态,可自动重启运行中不健康容器及恢复因健康问题停止的容器,有效提升容器化应用的可用性。
HEALTHCHECK)工作autoheal=true)精确控制监控范围docker-autoheal配置完全兼容,无需修改现有部署流程即可启用新增功能HEALTHCHECK(通过Dockerfile或运行参数定义)/var/run/docker.sock)到容器内部--health-cmd/--health-interval等)bashdocker run -d \ --name autoheal \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -e AUTOHEAL_INTERVAL=30 \ # 健康检查间隔(秒),默认30 -e AUTOHEAL_START_PERIOD=0 \ # 容器启动后延迟检查时间(秒),默认0 -e AUTOHEAL_LABEL=autoheal \ # 监控标签(容器需添加对应标签),默认"autoheal" -e AUTOHEAL_RESTORE_STOPPED=true \ # 启用已停止不健康容器修复,默认true your-registry/autoheal-fork:latest # 替换为实际镜像地址
yamlversion: '3.8' services: autoheal: image: your-registry/autoheal-fork:latest container_name: autoheal restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # 建议使用只读模式增强安全性 environment: - AUTOHEAL_INTERVAL=60 # 每60秒检查一次 - AUTOHEAL_START_PERIOD=30 # 容器启动30秒后开始检查 - AUTOHEAL_LABEL=false # 设为false监控所有带健康检查的容器 - AUTOHEAL_RESTORE_STOPPED=true # 启用停止容器恢复功能 labels: - "autoheal=false" # 排除自身被监控
| 参数名 | 描述 | 默认值 |
|---|---|---|
AUTOHEAL_INTERVAL | 健康状态检查间隔时间(秒) | 30 |
AUTOHEAL_START_PERIOD | 容器启动后延迟开始检查的时间(秒),避免启动初期健康检查误判 | 0 |
AUTOHEAL_LABEL | 仅监控带有指定标签的容器(如autoheal=true);设为"false"监控所有有健康检查的容器 | "autoheal" |
AUTOHEAL_ONLY_UNHEALTHY | 是否仅处理状态为"unhealthy"的容器(忽略"starting"等过渡状态) | true |
AUTOHEAL_RESTORE_STOPPED | 是否启用已停止不健康容器的恢复功能 | true |
DOCKER_SOCK | Docker守护进程socket路径,通常无需修改 | /var/run/docker.sock |
通过在目标容器添加标签精确控制监控行为:
autoheal=true: 强制纳入监控(优先级高于环境变量配置)autoheal=false: 强制排除监控(即使全局配置为监控所有容器)示例:启动一个带健康检查和监控标签的应用容器
bashdocker run -d \ --name api-service \ --health-cmd "wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1" \ --health-interval 15s \ --health-timeout 5s \ --health-retries 3 \ --label autoheal=true \ # 标记为需要监控 api-service:latest
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务