通过 watchtower 自动更新所有运行中的 Docker 容器

前言

这几年群晖使用下来部署了不少 Docker 容器,最终留下来的有 15 个,这些容器和群晖套件比起来最不方便的一点就是更新,以往需要保存容器配置,删除容器,重新下载镜像再部署容器。现在随着群晖的 Docker 管理器更新为 Container Manager 之后实际上可以在映像栏目进行手动更新,着实方便了不少。

但是为了方便想要自动更新以及使用老版本群晖的朋友,还是写了一篇教程,希望对大家有所帮助。

通过 watchtower 自动更新所有运行中的 Docker 容器

第一步、复制以下代码

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

第二步、使用任务计划进行部署

  • 打开 控制面板 -> 任务计划
  • 新增 -> 计划的任务 -> 用户自定义的脚本
  • 常规选项卡:
    1. 设定任务名称为:update all docker (随意设置只能是英文,默认也行)
    2. 用户账号:选择 root
    3. 已启用:勾选
  • 计划选项卡:
    1. 选择在以下天中运行
    2. 上半部分根据自己需求设置一个日期循环
    3. 下半部分设置执行的时间,我设置在凌晨 3 点半
  • 任务设置选项卡:
    1. 将第一步复制的语句粘贴到 用户自定义脚本输入框
    2. 按确定
  • 先尝试执行一次测试是否成功:任务计划列表中,右键要执行的项目 -> 运行,等待~~~
  • 要具体查看执行结果:单击该项目 -> 动作 -> 查看结果,一般来讲 正常(0) 表示成功,以后等着自动执行就可以了。
图片[1]-通过 watchtower 自动更新所有运行中的 Docker 容器

自动更新特定镜像

使用 watchtower 自动更新特定容器

按照第一部分自动更新全部镜像的方法,只是把代码改成以下代码,修改特定容器名称为你要自动更新的容器:

docker run --rm --name watchtower
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower 特定容器名称 --cleanup --run-once

通过计划任务自动更新 Docker Compose 部署的应用

针对使用 Docker Compose 部署的应用,也可以使用 watchtower 自动更新,但是其本身还有一种更新方式,作为一种补充吧,方法如下:

  1. 找到当初部署应用的 docker-compose.yml 文件位置,并获取其所在文件夹的路径。
  2. 修改后面代码中的文件路径为 docker-compose.yml 文件所在的文件夹路径。
  3. 按照本文第一部分的方法,设置计划任务进行定时更新。
cd 文件路径 //例如: cd /volume1/docker/Homarr
docker-compose pull
docker-compose down
docker-compose up --detach
声明:
1.本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
2.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
3.如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!
4.本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。
5.本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容