再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

2025-10-25 14:00:28 23点赞 157收藏 19评论

说起docker容器镜像的更新,很多人第一反应就是大名鼎鼎的瞭望塔 – watchtower。

这款工具有它的很多便利之处,比如轻量化、标签化、无感化等等,但是对于国内习惯了使用可视化面板来管理各类服务的用户来说,配置其实还是过于复杂,尤其是那指定升级的标签,还需要重新装一遍其它容器,太过麻烦!

大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数码玩耍经验~

最近,我找到了一款特别不错的docker镜像更新工具 —— tugtainer,它相比于 watchtower 最大的特点就是拥有可视化 WEB UI,而且无需配置其它容器的标签,只通过简单的点对点开启服务,就能满足指定容器镜像的版本监控和更新服务。

项目特点:

具有身份验证的 Web UI

套接字代理支持

多主机支持

Crontab 调度

对各种服务的通知

每个容器的配置(仅检查或自动更新)

手动检查和更新

自动/手动图像prune

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

⭐部署机:

本次部署机使用的是威联通双十一之前新推出的 Qu405-N355-16G。作为目前高端的低功耗处理器,N355 8核8线程的计算能力可以满足绝大多数多线程应用场景的性能需求,相比于上一代主流N150,性能提升约100%。此外,最大可扩容实测还可扩容为英睿达 24GB ,运行效率进一步释放。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

说起 NAS 虚拟化能力的扩展性和兼容性,如果威联通自认第二,那应该没有 NAS 品牌可以说我能当第一了。

除了常见的 docker、虚拟机等虚拟化服务中,威联通在 QTS/QuTS Hero 系统中还提供了 LXD 虚拟化服务,特点是比 docker 容器性能损失更小;提供了 K3s 轻量化集群服务,实现容器部署的多节点冗余,降低服务单节点风险。

作为生产主力机来说,威联通 Qu405-N355-16G 绝对合适,并不要说还有4000不到的8盘位型号 Qu805-N355-16G,绝对的目前双十一最值得投入的8盘位NAS,省钱是一步到位。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

这几天,亚马逊崩溃导致大量的服务无法直连,而docker更是进一步被优化掉。所以为了确保我们的容器镜像更新服务可以正常运行,我们必须提前配置部分加速镜像或者代理库。

在威联通的Container Station应用中,打开存储库标签,分别在 Docker hub 默认仓库里添加加速镜像,并且在下方的自定义存储库中添加代理仓或加速仓。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

接着,切换到应用程序标签,创建一个 compose 项目,然后将下面提供的 yaml 代码复制进去验证创建。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

🔻yaml 代码,由于 tugtainer 项目可以配置更新通知,所以我这里还增加了 bark(ios端)、gotify(安卓端)的两个通知工具,方便后续配置,如果你不想要通知,也可以直接删除。

services:

app:

container_name: tugtainer

image: quenary/tugtainer:latest

volumes:

- tugtainer_data:/tugtainer

- /var/run/docker.sock:/var/run/docker.sock

restart: unless-stopped

ports:

- '9412:80'

# 下面的可以删除,IOS通知客户端

gotify:

image: gotify/server:latest

container_name: gotify

ports:

- "8081:80"

volumes:

- /share/Container/gotify:/app/data

environment:

- TZ=Asia/Shanghai

- GOTIFY_DEFAULTUSER_NAME=admin

- GOTIFY_DEFAULTUSER_PASS=your_strong_password

restart: unless-stopped

# 下面的可以删除,安卓通知客户端

gotify:

container_name: bark

image: finab/bark-server

volumes:

- /share/Container/bark:/data

environment:

- TZ=Asia/Shanghai

ports:

- 8080:8080

restart: unless-stopped

# 下面的不能删除

volumes:

tugtainer_data:

项目启动后,首次登录需要激活自定义的登录密码,如果大家有部署 Vaultwarden 的,也可以使用浏览器插件生成强口令,并且自动备份在 NAS 里。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

退出并再次登录的时候,系统就会要求我们输入刚才配置的密码。由于 tugtainer 映射了我们的 docker socket,所以可以实现对的 docker 服务的全量管理,反过来也能直接影响到 NAS 的文件、目录,重要性极高,有效的鉴权机制可以保障我们的容器安全性。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

这是我们的项目首页,几列分别是容器名称、容器运行状态、健康度(若有检测)、是否检测更新、是否更新、手动检测按钮

它比 watchtower 最大的优势,就在于可以自由的配置某一个具体的容器镜像是否需要检测更新,是否需要更新,随时随地都可以自由调整。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

左上角的功能栏里,提供了容器、镜像、设置、项目库等四个标签。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

切换到镜像标签页,这里可以看到所有 NAS 里存储的镜像明细,包括是否 dingling(就是常见的none标签镜像),是否使用,以及它们的容量、创建时间、仓库信息等。

对于这些不使用的镜像,可以点击右上角的 Prune 一键销毁,释放 NAS 的存储空间。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

接下来,是我们的配置重头戏,就是系统的通知功能。具体效果是当镜像检查到更新或者自动更新后,给我们发送消息让我们知晓。目前tugtainer支持主流的 Apprise、AWS、Bark、BlyeSky等数十个通知工具,详细的通知工具和 API 口令可以通过官网查询:pypi.org/project/apprise/

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

由于我用的手机是iphone,所以这里就以 IOS 上的 Bark 通知服务来做教程,其它的方法也是类似参照即可。

在之前的代码中我们部署了 Bark 服务,所以只要直接下载 IOS 的 Bark 客户端并且添加自托管的域名/IP 地址,接着在设置里可以找到一个Device Token的字符串,这个我们需要激活使用。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

打开浏览器,输入http://bark_ip:bark_port/register?devicetoken=你的token,然后浏览器会返回一串成功的内容,记录里面的device_key,这个就是你这台手机的设备码。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

回到设置页面,在Notification URL里,按照网站要求填入bark:ip:port/device_key就可以了,然后点击一下右侧的通知测试,看看手机端能不能收到通知消息。

其它的配置,还有 CRON 自动计划、时区、更新后是否自动删除无用镜像等,这一些在每个设置的右侧都有说明,只需要简单配置,所以就不多介绍了。

再见watchtower,更好用的docker更新方案—威联通搭建tugtainer

以上,就是tugtainer这个项目的部署教程和具体使用方法了。总结下来,通过可视化的管理界面,以及自定义的任务计划和点对点的检查、升级渠道,tugtainer将原来watchtower等传统容器镜像升级服务做得更好用,并且可以支持外部通知,让我们不必时时刻刻盯着 NAS 来查看项目更新情况。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
19评论

  • 精彩
  • 最新
  • 不用科学上网我可以自动更新?

    校验提示文案

    提交
    都玩nas了,还不会科学上网?

    校验提示文案

    提交
    你能教下我怎么解决这个原镜像拉取更新的办法? [赞一个]

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • failed to get device token,bark提示这个,主播出来解释一下什么原因呗? [白菜君_洞察] [白菜君_洞察]

    校验提示文案

    提交
    文章里写了,你先注册key,拿到token

    校验提示文案

    提交
    收起所有回复
  • 大佬,部署好了,进去之后是空的,怎么添加主机呢

    校验提示文案

    提交
    不会吧,映射dock.sock了么

    校验提示文案

    提交
    我看到您的文章里面有一句:“由于 tugtainer 映射了我们的 docker socket,所以可以实现对的 docker 服务的全量管理”,想请教一下,怎么映射dock.sock?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 试试看

    校验提示文案

    提交
  • Docker nas没有天塌下来的原因不要更新

    校验提示文案

    提交
    为什么?docker软件镜像也是会不断更新的呀

    校验提示文案

    提交
    是啊 这就是放着安全漏洞不修复

    校验提示文案

    提交
    收起所有回复
  • 部署好了,打开以后能看到其他容器,但是就是不能更新,是所有的都不能更新,更新那个按钮按不动,我的有一部分是有更新的,点检查后也不行,,还有你的代理仓或加速仓还有加速镜像能提供一个不?

    校验提示文案

    提交
  • 以下是被折叠的评论 查看
已折叠部分评论
展开
收起
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
157
扫一下,分享更方便,购买更轻松