每月花 6 小时手动更新 Docker 镜像,其实一条命令就能省掉

2026-11-03 0 2

别再每天打开终端敲 docker pull 了。

你不是运维工程师,只是想让 Nextcloud、Home Assistant 这些自建服务一直用最新版,又不想半夜被通知吵醒去手动拉镜像、重启容器。

其实根本不用写 YAML、不用学 CI/CD,更不用买监控 SaaS——一个不到 200KB 的 Shell 脚本就能接进你现有的 docker-compose 环境里,安静跑在后台。

每月花 6 小时手动更新 Docker 镜像,其实一条命令就能省掉

替代了哪些付费软件

每月花 6 小时手动更新 Docker 镜像,其实一条命令就能省掉

它不替代某款具体收费产品,而是绕开了「持续更新」这件事背后的整套付费逻辑:比如 Datadog 的容器健康监控 + 自动更新告警套餐,年费 300 美元起;或者 Portainer Business 版的批量镜像更新+通知功能,要收订阅费;甚至一些 NAS 厂商(群晖、威联通)对 Docker 镜像自动更新的支持,只开放给付费会员。

你花时间查更新、等拉取、手动 restart,本质上是在为「自动化」买单。

而 dockcheck.sh 把这整件事压成一条命令:它不预拉镜像、不占额外资源、不改你任何配置,只做两件事——告诉你哪些容器该升了,以及按你定的规则(比如跳过测试版、只升七天前发布的镜像)帮你升完。

价格直接砍到零。

核心功能

  • 它能自动发现你 docker-compose.yml 里所有服务的镜像是否过期,并且支持按容器名、标签、甚至自定义 URL 列表来判断“新版”是不是真值得升,比如 Home Assistant 的 beta 标签你可能就想跳过,而 nextcloud 的 stable 分支你永远想第一时间跟上。
  • 升级过程不暴力重启整个 stack。如果你用的是 master-compose 结构(多个 yml 文件嵌套),它能精准只 up 那个变了的容器,避免牵连其他服务中断。
  • 支持开启镜像备份:每次更新前自动 tag 当前镜像,保留最近 N 天的旧版,万一新版本出问题,一行命令就能回滚,不用翻历史记录找 ID。
  • 通知不是摆设。它内置 Telegram、Discord、Gotify 等插件接口,还能直接发事件到 Home Assistant,你手机弹窗、桌面小部件、甚至音箱语音播报,全由你自己配。
  • 它不碰你没声明的容器。加 -e nextcloud,heimdall 就只管这两个,加 -E watchtower 就让它盯着 watchtower 有没有新版本但不自动升,这种细粒度控制,是多数付费面板都懒得做的。
  • 最省心的是“检查但不更新”模式:加 -n 参数,它就安静跑一遍,输出一份干净的待更新清单,适合放进 cron 每天早八点邮件推给你,像一份运维日报,而不是半夜把你叫起来干活。

三步上手

  1. 打开 GitHub 页面,下载 dockcheck.sh 文件(就一个脚本,不用 clone 整个仓库),保存到你放 docker-compose.yml 的同一目录下;
  2. 在终端里执行 chmod +x dockcheck.sh,然后运行 ./dockcheck.sh -n 先看它能不能识别出你当前所有容器;
  3. 确认无误后,加 -y 参数让它自动更新(比如 ./dockcheck.sh -y -e nextcloud),再把这条命令写进系统 crontab,比如每周日凌晨两点跑一次。

项目信息


📦
mag37/dockcheck
GitHub

CLI tool to automate docker image updates. Interactive or unattended with notifications, image backups, autoprune, no pre-pulling and more.

⭐
2.5k

Stars

🔀
97
Forks


Shell

📄
GPL-3.0

🔗 项目地址  https://github.com/mag37/dockcheck

命令行选项也更精细:-C 可临时跳过本地 dockcheck.config 文件,强制走默认策略;-N 能绕过所有检查逻辑,直接模拟一次更新并触发全部通知,用来验证 Telegram Webhook 或 Gotify 推送是否通畅;-I 和 -M 则分别以纯文本和 Markdown 格式输出每个容器对应的发布说明链接,前提是你的 urls.list 文件里已填好对应映射。

它还兼容 Podman 用户,只需切换到社区维护的 fork:sudo-kraken/podcheck,参数和行为几乎一致。

对于 Docker Hub 的拉取频率限制,它本身只做镜像 digest 对比,不触发实际 pull,因此完全不受限;只有你加上 -y 才会真正调用 docker pull。

脚本内建防错机制:比如 -f 强制 stop/start 时,会先检查容器是否已在运行;-R 跳过 recreate 时,会保留原容器状态;-s 包含已停止容器时,更新后自动恢复其停止状态,不会误启服务。

如果你习惯用 Prometheus 监控,-c 参数可将当前各容器镜像年龄、是否可更新等指标导出为 prometheus node_exporter 兼容的 textfile 格式,路径由你指定,无需额外 exporter。

所有功能都通过 shell 实现,没有外部语言依赖,连 jq 都不是必须项,基础 JSON 解析靠 sed/grep 完成,确保在 Alpine、Debian slim 等轻量系统上也能稳定运行。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本网站所提供的所有资源(包括但不限于软件、文档、教程、代码、素材等)均收集自互联网公开渠道,仅供个人学习、研究及交流使用。我们无法对所有资源的版权归属进行逐一核实。

OPENKLC昆仑草-免费资源下载-源码下载 开源易选 每月花 6 小时手动更新 Docker 镜像,其实一条命令就能省掉 https://www.openklc.com/3914.html

常见问题

相关文章

发表评论
暂无评论
  • 19657597937 +

    访问总数

  • 28 +

    会员总数

  • 1478 +

    文章总数

  • 3 +

    今日发布

  • 40 +

    本周发布

  • 541 +

    运行天数

你的前景,远超我们想象