watchtower自动化更新docker镜像
什么是 watchtower ?
watchtower 是一款实现自动化更新 Docker 镜像与容器的实用工具。它监控着所有正在运行的容器以及相关镜像,当检测本地镜像与镜像仓库中的镜像有差异时,会自动拉取最新镜像并使用最初部署时的参数重新启动相应的容器。
Docker手动升级流程
在介绍自动升级前,让先我们来了解一下手动升级的流程,以 Airsonic
为例
1、在注册表选择最新(latest)的映像下载(由于名字和以前下载的一样,在映像里只有一个,在DSM消息里有提示下载完成即可)
2、在容器里选择正在运行的 airsonic,在上面的操作里选择 停止-->清除-->启动
,就完成升级了。(数据不会丢失)
3、映像下载慢可以使用阿里等国内镜像下载,启动完成后,已经是新版本了
用watchtower自动升级
一般采用 docker run
方式,SSH 登录到群晖后用命令行执行
快速启动
执行以下标准命令启动 watchtower
容器,watchtower
将开始监视我们正在运行的 Docker 容器,并每隔几分钟检查一次所有容器的镜像是否为最新版,如发现镜像更新将会自动停止容器,删除容器,拉取最新镜像,再以之前启动容器的命令启动容器。
1 | docker run -d \ |
指定容器更新
如无需自动更新所有稳定运行的容器,可以配置仅更新指定容器,只需要在命令后加上容器名。例如只更新 nginx
和 redis
。
1 | docker run -d \ |
远程主机
缺省情况下,watchtower
监控的是本地的 docker daemon
,但是也可以监控另一台机器上的 docker,比如我本机 IP 是 192.168.0.199
,而另一台蜗牛星际的 IP 是 192.168.0.198
1 | docker run -d \ |
或者
1 | docker run -d \ |
建议
不建议自动更新全部,而要用指定容器更新,因为有些项目升级可能会带来很严重的兼容性问题,比如 homeassistant
从 0.82
升到 0.93
,各种不兼容,折腾到差点放弃,所以现在虽然已经都 0.114
了,可我还是一直停留在 0.93
。
更多的参数和命令,比如定时更新等等,可以参考官方的文档https://containrrr.dev/watchtower/
目前我觉得手动升级足够了,毕竟也才30多个镜像而已
参考文档
Remote hosts - Watchtower
地址:https://containrrr.dev/watchtower/remote-hosts/Watchtower - 自动更新 Docker 镜像与容器 - 思有云 - IOIOX
地址:https://www.ioiox.com/archives/84.html群晖NAS下自动更新docker镜像_NAS存储_什么值得买
地址:https://post.smzdm.com/p/a6lrmn6n/如何自动更新群晖docker的镜像与容器 | 生活的左上角
地址:https://bwskyer.com/synology-docker-install-watchtower.html