
modem7/docker-autohealDocker Autoheal用于监控并重启不健康的Docker容器。尽管Docker的HEALTHCHECK功能已实现,但原生并未包含自动重启不健康容器的机制(相关功能提案参见#22719和#28400)。本镜像作为临时解决方案,填补这一功能空白,直至原生支持--exit-on-unhealthy。
latest (Dockerfile) - 每周构建pinned
--exit-on-unhealthy功能的环境bashdocker run -d \ --name autoheal \ --restart=always \ -e AUTOHEAL_CONTAINER_LABEL=all \ -v /var/run/docker.sock:/var/run/docker.sock \ modem7/docker-autoheal
bashdocker run -d \ --name autoheal \ --restart=always \ -e AUTOHEAL_CONTAINER_LABEL=all \ -e DOCKER_SOCK=tcps://HOST:PORT \ -v /path/to/certs/:/certs/:ro \ modem7/docker-autoheal
autoheal=true 以启用监控AUTOHEAL_CONTAINER_LABEL=all 监控所有运行中容器AUTOHEAL_CONTAINER_LABEL 为现有标签名(标签值需为true)注意:若使用方式b监控所有容器,可通过为特定容器添加标签
autoheal=false排除监控
注意:必须先为容器镜像配置HEALTHCHECK,详情参见 Docker官方文档
TCP连接说明:tcp://用于未加密连接,tcps://用于TLS加密连接。TLS配置参见 Docker HTTPS安全文档
TLS证书要求:需在挂载目录中包含以下文件:ca.pem(CA证书)、client-cert.pem(客户端证书)、client-key.pem(客户端密钥)
如需容器时区与宿主机一致,挂载宿主机时区文件:
bashdocker run ... -v /etc/localtime:/etc/localtime:ro
http://localhost:8000/cfg/autoheal 配置通知渠道(配置详情参见 Apprise文档)APPRISE_URL="http://localhost:8000/notify/autoheal"AUTOHEAL_CONTAINER_LABEL=autoheal # 监控标签名,默认值为"autoheal" AUTOHEAL_INTERVAL=5 # 健康检查间隔(秒),默认5秒 AUTOHEAL_START_PERIOD=0 # 首次健康检查延迟时间(秒),默认0秒 AUTOHEAL_DEFAULT_STOP_TIMEOUT=10 # 容器重启时的停止超时时间(秒),默认10秒(Docker默认值,可通过标签覆盖) DOCKER_SOCK=/var/run/docker.sock # Docker API连接地址,默认UNIX套接字 CURL_TIMEOUT=30 # Docker API请求超时时间(秒),默认30秒 WEBHOOK_URL="" # 容器重启后发送通知的Webhook URL WEBHOOK_JSON_KEY="content" # Webhook请求中消息内容的JSON键名 APPRISE_URL="" # Apprise通知配置URL POST_RESTART_SCRIPT="" # 容器重启后执行的脚本路径(需挂载到容器内)
autoheal.stop.timeout=20:为特定容器设置重启时的停止超时时间(秒),覆盖默认值以下示例演示如何在容器重启后执行自定义脚本,脚本接收参数:CONTAINER_NAME(容器名称)、CONTAINER_SHORT_ID(容器短ID)、CONTAINER_STATE(容器状态)、RESTART_TIMEOUT(重启超时时间)
bash# 构建测试镜像(可选,直接使用modem7/docker-autoheal亦可) docker build -t autoheal . # 运行容器并配置重启后脚本 docker run -d \ -e AUTOHEAL_CONTAINER_LABEL=all \ -e POST_RESTART_SCRIPT=/scripts/post_restart.sh \ -v ./scripts:/scripts \ # 挂载宿主机脚本目录到容器内 -v /var/run/docker.sock:/var/run/docker.sock \ autoheal
bash# 构建测试镜像 docker build -t autoheal . # 启动测试容器 docker run -d \ -e AUTOHEAL_CONTAINER_LABEL=all \ -e POST_RESTART_SCRIPT=/scripts/post_restart.sh \ -v /var/run/docker.sock:/var/run/docker.sock \ autoheal





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务