开源&Docker 篇四:更新docker容器最方便的方法,一键全自动的watchtower

2024-01-03 10:20:32 28点赞 293收藏 7评论

本文收录于开源&Docker

前言

大家好,这里是可爱的cherry。NAS上部署的Docker服务多起来以后,Docker管理成了一件令人头疼的事情,今天介绍一款用于自动更新Docker镜像与容器的工具——Watchtower。让容器管理容器,让容器解放双手,不可谓不是自己给自己最好的一份礼物。

而我本人比较懒,又害怕服务一直吃性能,所以就设置成了手动更新的模式。以下是我在使用Watchtower时的日志记录,可以看到镜像、容器都在被稳步的更新迭代。

更新docker容器最方便的方法,一键全自动的watchtower

一、项目介绍

Watchtower在Github上有超过15.7K的星星,用于监控和自动进行镜像更新以及容器更新。

更新docker容器最方便的方法,一键全自动的watchtower
  • 与Docker守护进程通信: Watchtower通过与Docker守护进程的API进行通信来获取关于容器和镜像的信息。Watchtower容器启动时,它会将Docker守护进程的socket挂载到自己的文件系统上,以便能够直接与Docker API进行交互。

  • 获取镜像列表: Watchtower定期查询Docker守护进程,获取当前运行的容器所使用的镜像列表。通过比对这个列表和Docker Hub上的最新镜像版本,Watchtower能够确定哪些容器可以进行更新。

  • 比对镜像版本: Watchtower检查每个容器所使用的镜像是否有新的版本。这通常涉及到从Docker Hub或其他镜像仓库拉取最新的标签信息,比较本地镜像和远程镜像的版本号。

  • 自动更新容器: 一旦Watchtower确定容器的新版本可用,它将触发容器的重新创建。这个过程包括停止当前运行的容器、拉取新的镜像、然后重新启动容器。确保了应用程序在最短的停机时间内得到更新。

  • 可选的通知和日志: Watchtower支持可选的通知功能,可以通过配置来选择使用电子邮件、Slack等方式接收更新通知。此外,Watchtower会生成更新的日志,记录每次更新的详细信息,方便用户进行审查和故障排除。

  • 定制更新策略: Watchtower允许用户通过标签和其他配置选项对更新策略进行定制。用户可以为特定容器设置更新频率、指定不同的镜像源、定义更新时的行为等,以满足各种部署需求。

二、部署操作

以下分不同的使用场景进行介绍,也可以根据自己的要求进行组合。

(一)清理过期镜像

用于清理docker的匿名卷和标签为none的镜像。

--remove-volumes #清理匿名卷

--cleanup #清理标签为none的镜像。

sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --remove-volumes

(二)定期更新

通俗的讲,就是啥也不管,24小时定期给你所有的docker更新一遍。

sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

(三)单次更新

表示只让watchtower运行一次,运行完成以后容器就会变为停止状态,下次只要手动打开即可再次运行。

--run-once #只运行一次

sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once

(四)指定更新

更新docker容器最方便的方法,一键全自动的watchtower

这个功能就比较实用了,也是最推荐的模式。就是指定我们需要的容器进行更新,只需要在执行命令最后输入容器名字即可。这里分别是mov-jellyfin和mov-autobangumi。

sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower mov-jellyfin mov-autobangumi

(五)通知

推送目前支持slack,邮件,微软team,gotify等,这里介绍最简单的gotify。配置方法可以看我这篇文章

-e WATCHTOWER_NOTIFICATIONS=gotify

# 选择gotify作为推送接口

-e WATCHTOWER_NOTIFICATION_GOTIFY_URL="https://my.gotify.tld/"

#gotify的网址

-e WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN="SuperSecretToken"

#gotify的token

sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock -e WATCHTOWER_NOTIFICATIONS=gotify -e WATCHTOWER_NOTIFICATION_GOTIFY_URL="http://127.0.0.1:16008/" -e WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN="AcERJCNGLtwc.-l"

(六)其它

--include-stopped

#包含停止状态的容器,这样就不必在每次更新的时候要先把容器打开了。

--revive-stopped

#只能在上一个指令使用以后才可以使用,表示将未启用的容器更新后自动启动。

--interval 600

#定时轮训,数字表示秒,这里代表600秒。如果不输入-I,则是默认的是24小时

(七)使用群晖部署

在群晖部署的时候,可以在执行命令中加入以上提到的一些指令。

更新docker容器最方便的方法,一键全自动的watchtower

例如我最后生成的指令命令,就是包括了需要更新的容器。

更新docker容器最方便的方法,一键全自动的watchtower

最后

其实安装了那么多的Docker容器,实际在用的也就那么几个,很多时候为了稳定甚至特意去找了指定版本标签的(非latest)安装。

不过稳定是一方面,另一方面又不能忍受自己的镜像和容器不是最新的,因此使用Watchtower来帮助自己能有效降低自己的强迫症行为。

安利一下我使用的群晖及相关配件,以及平替DX517的好物M517。


更新docker容器最方便的方法,一键全自动的watchtower

欢迎朋友们评论区讨论留言,我会定期更新关注NAS使用方法、开源软件与Docker软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。

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

展开 收起

Synology 群晖 DS920+ 4盘位 NAS存储 黑色(J4125 8GB 无盘)

Synology 群晖 DS920+ 4盘位 NAS存储 黑色(J4125 8GB 无盘)

¥4950.00

APC施耐德UPS不间断电源BK650M2电脑NAS群晖停电备用电池 后备式

APC施耐德UPS不间断电源BK650M2电脑NAS群晖停电备用电池 后备式

暂无报价

国行盒装希捷ST16000NM000J/001G 16TB银河X18企业级机械硬盘16T

国行盒装希捷ST16000NM000J/001G 16TB银河X18企业级机械硬盘16T

¥1698.00

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4079元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1529元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

13746元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2279元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6899元起
7评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章

生活家,数码领域作者,电脑外设领域作者

发文累计获赞6126,内容被4.8万人收藏

关注 打赏
作者其他文章
最新文章 热门文章
293
扫一下,分享更方便,购买更轻松