【开源】watchducker 一个 Docker 容器镜像自动检查更新工具
之前用 watchtower 发现必须要:ladder:才能检查镜像,对于国内机器太不友好了。于是我自己搞了个轻量版的,配好 Docker 的镜像加速源就能直接用了。
naomi233/watchducker
43 更新于2025-11-24 15:11:32
一个用 Go 语言编写的 Docker 容器镜像更新检查和自动更新工具
- 智能检查: 自动检测容器使用的镜像是否有新版本可用
- 标签驱动: 通过 watchducker.update=true 标签自动管理需要更新的容器
- 定时执行: 支持使用 cron 表达式进行定时检查
- 自动更新: 检测到更新后可自动重启容器使用新镜像
- 灵活控制: 提供只检查不重启的选项
- 实时反馈: 检查过程中提供实时进度和结果输出
- Docker 原生: 完全基于 Docker API,无需额外依赖
- 无需代理: 复用现有 Docker 配置,无需额外配置认证和代理、加速镜像源
示例
# 检查指定容器
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker nginx redis mysql
# 检查所有带有更新标签的容器
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker --label
# 只更新镜像,不重启容器
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker --no-restart nginx redis
# 使用标签模式,同时防止自动重启
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker --label --no-restart
# 每天凌晨2点检查所有标签容器
docker run --name watchducker -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker --cron "0 2 * * *" --label
# 每30分钟检查指定容器
docker run --name watchducker -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker --cron "*/30 * * * *" nginx redis
# 每天执行,只检查不重启
docker run --name watchducker -v /var/run/docker.sock:/var/run/docker.sock naomi233/watchducker:latest watchducker --cron "@daily" --no-restart nginxDocker compose yaml 示例
services:
watchducker:
image: naomi233/watchducker
container_name: watchducker
network_mode: bridge
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Shanghai
- WATCHDUCKER_LOG_LEVEL=DEBUG
- WATCHDUCKER_CRON=0 2 * * *
- WATCHDUCKER_LABEL=true
评论区(暂无评论)