
qmcgaw/deunhealthDeUnhealth是一款用于安全重启不健康容器的工具。它通过监听Docker事件流(而非定期轮询)监控容器状态,仅重启标记有特定标签的不健康容器,支持多种CPU架构,且设计上注重安全性,无需网络访问以减少***面。
deunhealth.restart.on.unhealthy=true标签的不健康容器amd64、386、arm64、arm32v7、arm32v6、ppc64le、s390x和riscv64适用于任何需要自动监控并处理容器健康状态的Docker环境,尤其适合运行关键服务的场景。通过自动重启不健康容器,可减少因容器故障导致的服务中断,提高系统可靠性,降低手动干预成本。
运行容器
使用以下命令启动DeUnhealth:
shdocker run -d --network none -v /var/run/docker.sock:/var/run/docker.sock qmcgaw/deunhealth
也可使用docker-compose.yml:
shdocker-compose up -d
设置容器标签
为需要重启的容器添加标签:
deunhealth.restart.on.unhealthy=true更新镜像
使用docker pull qmcgaw/deunhealth:latest更新镜像,或选择可用标签。⚠️ 建议使用带标签的镜像,因为在达到v1.0.0版本前,latest标签可能会破坏兼容性。
| 环境变量 | 标志 | 默认值 | 可能值 | 描述 |
|---|---|---|---|---|
DOCKER_HOST | --docker-host | 默认Docker socket路径 | Docker主机值 | Docker主机地址,例如unix:///var/run/docker.sock或tcp://socket-proxy:2375 |
LOG_LEVEL | --log-level | info | debug、info、warning、error | 日志级别 |
HEALTH_SERVER_ADDRESS | --health-server-address | 127.0.0.1:9999 | 有效的网络地址 | 内部健康检查HTTP服务器监听地址,与容器重启功能无关 |
TZ | N/A | America/Montreal | 时区字符串 | 容器时区设置 |
详见对应的说明文档。
shgo mod download
sh# 构建二进制文件 go build cmd/app/main.go # 测试代码 go test ./... # 代码 lint 检查 golangci-lint run # 构建Docker镜像 docker build -t qmcgaw/deunhealth .
贡献指南详见Contributing。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务