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

Auth:老张       Date:2023/03/29       Cat:电脑网络       Word:共886字

◷2023/03/29   👁浏览:2.2K   🗨23条评论

目前老张在自己的宝塔面板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容器了。

如何优雅的一键升级宝塔面板多个Docker容器。 - 第1张图片

 

 

《如何优雅的一键升级宝塔面板多个Docker容器。》留言数:23

      1. 老张博客-RoyRoy

        @老张: docker: Error response from daemon: Conflict. The container name “/watchtower” is already in use by container “a4781562b7e488c3a0d588a88254678e5a0f6d46a337d2823d522afb92c7cca2”. You have to remove (or rename) that container to be able to reuse that name.
        See ‘docker run –help’.

        运行了提示这个

发表留言