群晖Docker安装docker容器自动更新工具Watchtower

介绍

  • 借助 watchtower,只需将新映像推送到 Docker Hub 或您自己的映像注册表,即可更新容器化应用的运行版本。

  • Watchtower 旨在用于家庭实验室、媒体中心、本地开发环境等。我们不建议在商业或生产环境中使用 Watchtower。如果是你,你应该考虑使用 Kubernetes。如果这对你来说太重要了,请研究一下像 MicroK8sk3s 这样的解决方案,它们可以消除运行 Kubernetes 集群的大量工作。

安装教程

自动更新所有容器

  1. 这将更新包含watchtower在内的所有容器镜像版本

  2. 如果你的容器使用的是镜像的指定版本,那么将不适用。

  3. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。

  4. 复制下面的命令,粘贴到终端内执行。

    docker run --detach \
      --name watchtower \
      --volume /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower
  5. 查看正在运行的容器

    docker ps

自动更新指定的容器镜像

  1. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。

  2. 复制下面的命令,粘贴到终端内执行。

    #注释记得删除
    
    docker run -d \ 
        --name watchtower \ 
        -v /var/run/docker.sock:/var/run/docker.sock \ 
        containrrr/watchtower \ 
        miniboard    #监控更新的容器名,如果有多个就每个容器名之间空格,例如:容器1 容器2 容器3
  3. 查看正在运行的容器

    docker ps

指定容器的更新频率

  1. Watchtower 默认情况下 24 小时会检查一次镜像更新。设置--interval 选项更新时间,默认单位

  2. 复制下面的命令,粘贴到终端内执行。

    docker run -d \ 
        --name watchtower \ 
        -v /var/run/docker.sock:/var/run/docker.sock \ 
        containrrr/watchtower \ 
        --interval 6 
  3. 查看正在运行的容器

    docker ps

定时更新指定容器

  1. 可以使用--schedule选项, 设定定时更新任务,定时任务为6 字段来表示执行时间,第一个字段表示秒。

  2. 复制下面的命令,粘贴到终端内执行。

    docker run -d \ 
        --name watchtower \ 
        -v /var/run/docker.sock:/var/run/docker.sock \ 
        containrrr/watchtower \ 
        --schedule "0 30 20 * * 5" 
  3. 查看正在运行的容器

    docker ps

自定清理旧镜像

  1. 可以使用--cleanup 选项,这样每次更新都会把旧的镜像清理掉。

  2. 复制下面的命令,粘贴到终端内执行。

    docker run -d \ 
        --name watchtower \ 
        -v /var/run/docker.sock:/var/run/docker.sock \ 
        containrrr/watchtower \ 
        --cleanup 
  3. 查看正在运行的容器

    docker ps

清理无用的Docker卷

  1. 用于清理无用的Docker卷。它会删除所有没有关联到任何容器的卷,以释放磁盘空间。

  2. 复制下面的命令,粘贴到终端内执行。

    docker volume prune

项目地址

功德+1(狗子).gif

👇👇👇