转载:如何优雅的一键升级宝塔面板多个Docker容器。

26次阅读
没有评论

转载:如何优雅的一键升级宝塔面板多个 Docker 容器。

之前一直用 Docker Copilot 来更新手上群晖、飞牛的 docker 很方便。正好看到老张博客里有这个办法感觉也不错,关键是可以用计划任务设置自动更新。


目前老张在自己的宝塔面板 Docker 里部署了好几个项目,Alist、ChatGPT-web、Trilium、思源笔记这四个常用的项目。对于这几个项目里,更新频率最高的就是思源笔记了。我在《宝塔面板下利用 Docker 部署思源笔记!》等几篇关于宝塔面板 Docker 的文章里也有说法,如果官方项目版本更新之后,需要将本地的容器和镜像删除之后,重新拉取最新的镜像,然后再新建容器进行重新配置,这样真的很麻烦。

后来经过向度娘请教之后,发现很多人在群晖里升级 Docker 容器用了 watchtower 这个项目来自动升级 Docker 里的项目容器,我便把他搬到了宝塔里来了。

watchtower 本身也是 Docker 里一个项目,但是我们这次使用他是在宝塔面板的 ” 计划任务”里。打开宝塔的“计划任务”新建一个“shell 脚本”,执行周期可以设置成每周执行一次。而脚本内容可以按需复制以下代码:

1. 运行一次,更新所有的容器,并清除旧的容器。

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

2. 运行一次,更新所有的容器,并清除旧的容器,并删除 watchtower 容器。

docker run --rm --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once

3. 指定容器更新,如无需自动更新所有稳定运行的容器, 可以配置仅更新指定容器, 只需要在命令后加上容器名. 例如只更新 nginx 和 redis。

docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once nginx redis

有了这个神项目,就不再需要手动更新 docker 容器了。

转载自老张博客  

正文完
 0
评论(没有评论)