快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS

2024-01-02 17:42:07 11点赞 110收藏 8评论

现在的 NAS 硬件性能不弱,可以作为小型服务器使用 docker 部署常用容器。本文将详细介绍如何快捷更新 NAS 部署的 docker 容器。

准备工作

更新 docker 容器的操作思路:

  • 用 whats-up-docker 检测容器镜像是否更新;

  • 用 watchtower 批量自动更新容器;

绿联 NAS 部署 whats-up-docker 需要开启 SSH 通过命令行安装。进入“设备管理”点击“调试功能”,点击“开启远程调试功能”,接下来通过手机号接收验证码获得 SSH 密码:

快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS

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

快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS

安装 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 信息:

快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS

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

快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS

安装 watchtower

watchtower 是一个容器自动更新工具。使用 watchtower 批量更新容器只需一句命令即可,但我个人不建议用这种方法(毕竟部分容器新旧镜像不兼容,直接升级可能会无法运行,我们也并不需要每次都全部更新所有容器):

docker run -d --name watchtower --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c

我更喜欢用一次性命令更新容器,命令最后填写需要更新的容器名称:

快捷更新 docker 容器,适用绿联 DX4600 及其他品牌 NAS

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 容器,适用绿联 DX4600 及其他品牌 NAS

欢迎大家补充,我也会继续完善方案!

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

展开 收起
8评论

  • 精彩
  • 最新
  • 有个 onekeyupdate,但是绿联用的版本有段时间不更新了

    校验提示文案

    提交
    onekeyupdate似乎只适用于绿联,如果太小众确实存在后续开发动力不足的问题

    校验提示文案

    提交
    极空间也是用这个,挺好用的,作者新版本还开发了备份功能,比较实用

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我是用 Docker Compose设置 Docker 项目,用 watchtower 定时更新指定容器。
    在做好备份的情况下,再手动更新 Docker 镜像。

    校验提示文案

    提交
    认同,容器没必要盲目追新。docker-compose的部署方式更容易维护。

    校验提示文案

    提交
    收起所有回复
  • 请问您是如何安装1Panel到绿联云上的,官方脚本中 docker-compose装不上

    校验提示文案

    提交
  • containrrr 是什么玩意

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

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