前言
这几年群晖使用下来部署了不少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
第二步、使用任务计划进行部署
- 打开
控制面板
->任务计划
新增
->计划的任务
->用户自定义的脚本
- 常规选项卡:
- 设定任务名称为:
update all docker
(随意设置只能是英文,默认也行) - 用户账号:选择
root
- 已启用:勾选
- 设定任务名称为:
- 计划选项卡:
- 选择
在以下天中运行
- 上半部分根据自己需求设置一个日期循环
- 下半部分设置执行的时间,我设置在凌晨3点半
- 选择
- 任务设置选项卡:
- 将第一步复制的语句粘贴到
用户自定义脚本输入框
- 按确定
- 将第一步复制的语句粘贴到
- 先尝试执行一次测试是否成功:任务计划列表中,右键要执行的项目->
运行
,等待~~~ - 要具体查看执行结果:单击该项目->
动作
->查看结果
,一般来讲正常(0)
表示成功,以后等着自动执行就可以了。
自动更新特定镜像
使用 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 自动更新,但是其本身还有一种更新方式,作为一种补充吧,方法如下:
- 找到当初部署应用的 docker-compose.yml 文件位置,并获取其所在文件夹的路径。
- 修改后面代码中的
文件路径
为 docker-compose.yml 文件所在的文件夹路径。 - 按照本文第一部分的方法,设置计划任务进行定时更新。
cd 文件路径 //例如: cd /volume1/docker/Homarr
docker-compose pull
docker-compose down
docker-compose up --detach