每月花 3 小时手动更新 Docker 容器,你其实早该停了

2026-10-15 0 3

你有没有过这种时候:昨天刚拉好的 Docker 容器,今天就发现镜像有安全补丁,但你得手动 pull、stop、rm、run 一整套?

家里 NAS 上跑着七八个服务——Transmission、Jellyfin、Portainer……每个都得盯版本、查更新、翻日志。时间花了不少,还常漏掉一个。

不是不想自动化,是怕搞崩了全家的媒体库和下载任务。结果就是:一边看着 GitHub 上别人发「Watchtower 自动升级成功」,一边自己还在复制粘贴 docker 命令。

它曾是 Homelab 圈里最常被提的名字之一。2020 年起,大量中文教程把它列为「Docker 入门必装三件套」之一,和 Portainer、Traefik 并列。

直到 2023 年底,项目主页顶部挂出醒目横幅:⚠️ This project is no longer maintained。

这不是临时休眠,而是明确终止。官方讨论区 #2135 帖子里写得很清楚:核心维护者已转向其他方向,不再接受新功能请求,也不再修复非关键 bug。

每月花 3 小时手动更新 Docker 容器,你其实早该停了

能替代什么 / 能省多少钱

每月花 3 小时手动更新 Docker 容器,你其实早该停了

它不直接对标某个收费软件,而是替你省下「人工盯更新」的时间成本。比如你每月花 3 小时手动检查、更新容器,按保守时薪 50 元算,一年就是1800 元。

官方明确说:不推荐用于商业或生产环境

它替代的其实是「请运维帮忙写脚本」或「买带自动更新功能的 NAS 系统」这类隐性支出。群晖 DSM 高级版、Unraid 订阅服务里部分自动更新能力,本质和 Watchtower 干的是同一件事。

价格直接砍到零。但它真正的价值不在省钱,而在减少人为疏漏带来的连锁问题——比如漏升一个老旧的 Nginx 镜像,可能让整个反向代理链路暴露在已知漏洞中。

对个人用户来说,它解决的不是“能不能用”,而是“敢不敢放心用”。当所有容器都靠一条命令启动,谁还记得每个服务该加哪些 –cap-add 或 –security-opt 参数?

核心功能

每月花 3 小时手动更新 Docker 容器,你其实早该停了

  • 当你推送新镜像到 Docker Hub 或私有仓库,Watchtower 会自动检测变化,拉取最新版,再平滑重启容器,整个过程不用你点一次鼠标,也不需要改任何启动参数。
  • 它能识别你最初用 docker run 启动时的所有选项:端口映射、卷挂载、环境变量、网络模式……重启后完全保持原样,不像手动操作容易漏掉 –restart=always 这种关键设置。
  • 支持按容器名、标签或正则表达式筛选更新范围。你可以让 Watchtower 只管 nginx 和 mysql,把 homeassistant 这类敏感服务排除在外,避免半夜自动重启导致智能家居失联。
  • 提供邮件、Telegram、Discord 等多种通知渠道。更新成功或失败,都会推一条消息给你,不用再 ssh 进去翻日志确认到底换没换。
  • 能设置检查频率(默认 24 小时一次),也能改成每 5 分钟轮询一次。对开发测试环境很友好,改完代码推镜像,几分钟后新版本就跑起来了。
  • 它不碰你的数据卷,只换镜像层。你存在 /config 或 /data 下的配置文件、数据库文件、下载目录,全部原封不动保留,这点比很多一键升级脚本靠谱得多。
  • 支持 –label-enable 模式,只需给容器打上 com.centurylinklabs.watchtower.enable=true 标签,就能精细控制开关,比全局启用更安全。
  • 可配合 –interval 参数传入秒数,比如 –interval 300 表示每五分钟检查一次;也可用 –schedule “0 0 * * *” 写 Cron 表达式,实现每天凌晨两点统一扫描。

三步上手

每月花 3 小时手动更新 Docker 容器,你其实早该停了

  1. 确认你电脑或 NAS 已安装 Docker,并且能正常运行容器(Windows 用户需开启 WSL2,Mac 用户装 Docker Desktop 即可);
  2. 打开终端,复制粘贴这行命令:docker run –detach –name watchtower –volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower;
  3. 运行后它就默默在后台工作了,用 docker logs watchtower 可以看实时日志,确认是否开始扫描容器。
  4. 想让它只监控特定容器?加 –include 选项,例如 –include jellyfin –include transmission;想跳过某几个?用 –exclude portainer –exclude homeassistant。
  5. 第一次运行后,建议立刻执行 docker exec -it watchtower sh,进容器手动运行 watchtower –debug –no-startup-message,观察输出是否列出你期望管理的容器。

项目信息

每月花 3 小时手动更新 Docker 容器,你其实早该停了


📦
containrrr/watchtower
GitHub

A process for automating Docker container base image updates.

⭐
24.6k

Stars

🔀
1.2k
Forks


Go

📄
Apache-2.0

收藏 (0) 打赏

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

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

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

OPENKLC昆仑草-免费资源下载-源码下载 开源易选 每月花 3 小时手动更新 Docker 容器,你其实早该停了 https://www.openklc.com/3555.html

下一篇:

已经没有下一篇了!

常见问题

相关文章

发表评论
暂无评论
  • 19657553782 +

    访问总数

  • 28 +

    会员总数

  • 1372 +

    文章总数

  • 4 +

    今日发布

  • 45 +

    本周发布

  • 522 +

    运行天数

你的前景,远超我们想象