快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS
现在的 NAS 硬件性能不弱,可以作为小型服务器使用 docker 部署常用容器。本文将详细介绍如何快捷更新 NAS 部署的 docker 容器。
准备工作
更新 docker 容器的操作思路:
用 whats-up-docker 检测容器镜像是否更新;
用 watchtower 批量自动更新容器;
绿联 NAS 部署 whats-up-docker 需要开启 SSH 通过命令行安装。进入“设备管理”点击“调试功能”,点击“开启远程调试功能”,接下来通过手机号接收验证码获得 SSH 密码:

然后通过 SSH 连接到 NAS,注意绿联 NAS 的 SSH 端口为 922 而非常规的 22:

安装 whats-up-docker
通过 docker run 命令安装 whats-up-docker。whats-up-docker 默认访问端口为 3000,可根据实际情况修改,如果你安装了 dockge 或者 portainer 也可用 docker compose 部署:
docker run -d --name wud
-v "/var/run/docker.sock:/var/run/docker.sock"
-p 3006:3000
fmartinou/whats-up-docker
通过浏览器访问 whats-up-docker,就可以看到有多少镜像可以更新。点击筛选 Update avaliable 即可看到可更新镜像:
whats-up-docker 镜像更新信息还可以在 homepage 里实时显示,通过 homepage 配置文件添加whats-up-docker 信息:



然后就可以实现如下效果(显示容器总数和可更新容器数量):

安装 watchtower
watchtower 是一个容器自动更新工具。使用 watchtower 批量更新容器只需一句命令即可,但我个人不建议用这种方法(毕竟部分容器新旧镜像不兼容,直接升级可能会无法运行,我们也并不需要每次都全部更新所有容器):
docker run -d
--name watchtower
--restart unless-stopped
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower -c
我更喜欢用一次性命令更新容器,命令最后填写需要更新的容器名称:

docker run --rm
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower -c
--run-once
komga kavita tailscale homepage home-assistant calibre-web music_tag_web
每次输入命令还是太麻烦,所以把命令转换成 compose ,然后通过 dockge 或者 portainer 部署,每次只需要填写想要更新的容器名称运行一次即可:
version: "3"
services:
watchtower:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
image: containrrr/watchtower
command: -c --run-once komga kavita tailscale homepage home-assistant
calibre-web music_tag_web homepage talebook node-exporter dockge-dockge-1
你还可以通过加入定时执行参数,让 watchtower 定时更新指定容器。下面的命令是定时 10小时更新nginx 和 redis
docker run -d
--name watchtower
--restart unless-stopped
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower -c
--interval 36000
nginx redis
下面的命令是每天 2点更新 nginx 和 redis
docker run -d
--name watchtower
--restart unless-stopped
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower -c
--schedule "0 0 2 * * *"
nginx redis
安装 1Panel、Portainer、dockge 等容器管理工具
除了上面的方法,安装 1Panel、Portainer、dockge 这类 WEB端容器管理工具也可以直接点击容器选择升级:

欢迎大家补充,我也会继续完善方案!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

宇宙大波
校验提示文案
天外来鸿
在做好备份的情况下,再手动更新 Docker 镜像。
校验提示文案
值友1195564082
校验提示文案
放松的猫
校验提示文案
放松的猫
校验提示文案
值友1195564082
校验提示文案
天外来鸿
在做好备份的情况下,再手动更新 Docker 镜像。
校验提示文案
宇宙大波
校验提示文案