Docker 篇十六:What’s Up Docker——你的容器镜像该更新了

Docker 篇十六:What’s Up Docker——你的容器镜像该更新了

前言

大家好,这里是可爱的Cherry,一个美丽冻人的日更美少女

求关注、求点赞、求转发~~求一键三连呀~~🧡🧡🧡💛💛💛💚💚💚

说到Docker容器监听服务,你肯定第一时间想到WatchTower对吧?Cherry曾经也发布过关于灯塔的一些部署和使用教程。

Docker 篇四:watchtower——一键全自动更新docker容器

🔻以下是Docker容器可视化管理面板专题,有兴趣的朋友也可以看看。

Docker 篇十三:Dockge——堆栈可视化面板,小白轻松玩转Docker Compose

但是今天呢,恭喜你猜错了,今天Cherry介绍另外一款容器监听工具——What’s Up Docker(以下简称WUD),对,就是在标题里写的这名字。

20240508085032148-16-1

那么我们就开始吧! Dokcer,你肿么了。


系统介绍

一、WUD做什么工作?

🔻WUD 容器建立在以下三个步骤中进行工作,当 Docker 容器存在新版本时,WUD会通过多种多样的方式通知你,并让你按照自己的方式做出反应。

  1. WATCHERS:查询 Docker 主机以获取要监视的容器

  2. REGISTRIES:查询 Docker 注册表以查找可用更新

  3. TRIGGERS:在有可用更新时执行相应的操作

🔻以下是工作流程图,提供UI与API,并且重点关注通知方式,使用 Smtp、Apprise、Ifttt、Pushover、Slack、Telegram、Discord 等发送通知,对我们来说最通用的就是webhook。

20240508085033798-16-2


部署教程

一、SSH部署

❗【端口】:自定义对外端口,以23000为例

docker run -d –name wud -v /var/run/docker.sock:/var/run/docker.sock:ro -p 【端口】:3000 fmartinou/whats-up-docker

#

docker run -d –name wud -v /var/run/docker.sock:/var/run/docker.sock:ro -p 23000:3000 fmartinou/whats-up-docker

二、群晖部署

🔻建议使用计划任务执行复制以下代码使用

docker run -d –name wud

-v “/var/run/docker.sock:/var/run/docker.sock”

-p 23000:3000 #自定义端口

fmartinou/whats-up-docker

 


程序使用

一、自动监控镜像版本

该项目没有设置或控制面板所有的功能都是通过环境变量来实现的,因此首页内容也很简单,仅作为展示。

🔻项目首页,可以看到已经提示有3个容器可以更新镜像了。

20240508085033446-16-3

🔻点击左侧的容器按钮进入容器列表详情页,可以看到每一个容器镜像的最新版本号,该页包含功能如下:

  1. Update available:查看仅有更新的。

  2. WATCH NOW:手动刷新容器镜像版本。

20240508085033708-16-4

二、配置通知器

该项目支持Apprise、Http、Iftt、Kafka、Mqtt、Pushover、Slack、Smtp、TG、DISCORD等消息通知。较有意思的是,所有的配置都是通过环境变量来实现的,支持同时发送多个监控工具,并且通过自定义环境变量来实现。

其中,Http使用Json代码,而Json的格式是固定的,除非你修改代码,因此在微信、钉钉、gotify等项目中并不能很好的运用。

⭐⭐Cherry曾经写到两篇关于webhook使用的文章,有兴趣的朋友可以看一看。⭐⭐

 

 

 

 

🔻具体的指令可以查看官方文档。Triggers (fmartinou.github.io),以下介绍一下自定义的格式:

WUD_TRIGGER_{{trigger_type}}}_{trigger_name}_MODE

{{trigger_type}}}:表示发送类型,包括SMTP、HTTP、MQTT等

{trigger_name}}}:表示自定义名称,只要保持一致即可,比如webhook的我统一为bark,smtp的我统一为gmail

🔻通用内容,定义传送内容:

#标题

-e ‘WUD_TRIGGER_SMTP_GMAIL_SIMPLETITLE=Container ${name} can be updated’

#内容

-e ‘WUD_TRIGGER_SMTP_GMAIL_SIMPLEBODY=Container ${name} can be updated from version ${local} to version ${remote}’

🔻Webhook(HTTP):以bark的为例

bark服务地址:http://192.168.1.104:16009/a2dh7rS3dNXo7SLBMH5XEN/

#webhook地址

-e WUD_TRIGGER_HTTP_BARK_URL=”http://192.168.1.104:16009/a2dh7rS3dNXo7SLBMH5XEN/”

#webhook方法,采用get

-e WUD_TRIGGER_HTTP_BARK_METHOD=”GET”

🔻Webhook(HTTP):最终指令为

docker run -d –name wud -v /var/run/docker.sock:/var/run/docker.sock:ro -e TZ=Asia/Shanghai -e WUD_TRIGGER_HTTP_BARK_URL=”http://192.168.1.104:16009/a2dh7rS3dNXo7SLBMH5XEN/” -e WUD_TRIGGER_HTTP_BARK_METHOD=”GET” -e ‘WUD_TRIGGER_HTTP_BARK_SIMPLEBODY=Container ${name} can be updated from version ${local} to version ${remote}’ -p 23000:3000 fmartinou/whats-up-docker

🔻Smtp,以Gmail邮箱为例

-e WUD_TRIGGER_SMTP_GMAIL_HOST=”smtp.gmail.com

-e WUD_TRIGGER_SMTP_GMAIL_PORT=”465″

-e WUD_TRIGGER_SMTP_GMAIL_USER=”john.doe@gmail.com

-e WUD_TRIGGER_SMTP_GMAIL_PASS=”mysecretpass”

-e WUD_TRIGGER_SMTP_GMAIL_FROM=”john.doe@gmail.com

-e WUD_TRIGGER_SMTP_GMAIL_TO=”jane.doe@gmail.com

-e WUD_TRIGGER_SMTP_GMAIL_TLS_ENABLED=”true”

三、其它配置

🔻设置Docker自动更新

-e “WUD_TRIGGER_DOCKER_EXAMPLE_PRUNE=true”

🔻更改镜像源

镜像源支持ACR、CUSTOM、ECR 、GCR 、GHCR、GITLAB、HOTIO 、HUB、LSCR、Quay等不同镜像库的cookie登录,防止被限流。具体文档可以看:Registries (fmartinou.github.io)

四、API接口

WUD允许第三方使用WUD的API,可以查看容器、删除容器、查看日志等。

20240508085033470-16-5

最后

生命在于折腾,容器在于稳定。实话实说,在折腾久了以后,Cherry并不喜欢频繁的更新容器,因为很多容器项目更新往往包含着环境变量、内部结构的变动,如果不明所以就将容器版本更新,很容易造成项目损坏。

因此本项目仅仅通过监控镜像版本,并予以通知,可以很大的程度上解决我们的困境,一边能及时知晓手上的docker是否更新了,另一边也能考虑周全是否更新。

虽然群晖DSM7.2已经包含了镜像更新提醒功能,但是我们依旧可以部署一些简单明了的工具来帮我们更好的管理容器、镜像。

该项目属于docker项目,所有nas均可以安装。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容