网站首页 > 教程文章 正文
群晖之所以备受欢迎,是因为它完善的系统,以及使用Docker可扩展丰富的可玩性。而Docker中的映像不是一成不变的,它是在不断更新,开发新的功能或者修复Bug的。但是我们配置好的容器是不会自动更新的,如果删除容器,重新下载新的映像并重新安装,那么原来的配置都会没了,需要重新配置。
我是一个很听劝的人,刚刚研究了怎么手动无损升级Docker容器,就有朋友推荐可以使用watchtower实现映像的自动无损升级。这可比我的手动无损升级更好用呀,赶紧来学习折腾一下。
先来说一下watchtower,它可以监视 Docker Hub 或私有仓库中的映像,并在发现新的映像版本时自动更新容器,我们可以通过定时任务来执行watchtower,可以在后台自定义的时间自动更新有新版的Docker。
我的群晖DSM是7.2版本的,它的Docker是使用Container Manager进行管理,首先在Container Manager的注册表菜单中搜索“watchtower”,我选择的是下载量最多的“containrrr/watchtower”,下拉最新版的映像。
下载完成以后无需运行映像,到“控制面板”中找到任务计划。
在任务计划中,逐层选择新增-计划的任务-用户定义的脚本
在常规设置中,任务名称可以自己随便起,不过必须是英文和数字,用户选择root
在计划设置中,设置任务运行的周期以及时间,想每天更新的可以选择每天重复,我觉得没有必要每天都去更新,就选择了每周一的5:00进行更新,因为这个时间我不会使用Docker,避免更新而造成的使用的中断
在任务设置中,输入我们的命令,其中“linuxserver-radarr-1”是指定要更新的容器的名称,如果为空的话是全部更新,我只是指定了我需要更新的容器,避免一些重要的Docker因更新造成运行不稳定。如果多个容器需要更新,可填写多个名称,中间用空格隔开。
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once linuxserver-radarr-1
我手动执行了一次命令,经过短暂的运行可以看到,我的radarr从4.6.4.7568更新到了5.3.6.8612,成功进行了更新,并且全部的设置都没有变化,无需重新配置,即时可用。
如果映像有更新的话,它会停止容器才进行更新,所以我们的邮箱会收到容器异常停止的邮件
当然我设置的执行任务计划,也是会有邮件反馈的,在邮件中,也可以看到发现了linuxserver-radarr-1,并进行了更新
如果没有发现新版本的映像,邮件中显示顺利执行一次任务
通过watchtower,可以实现Docker容器的自动定时无损更新,如果我们使用了大量的Docker,这个更方便的管理方法。
猜你喜欢
- 2025-04-08 dcoker之容器数据卷,以及定制镜像Dockerfile配置与设置
- 2025-04-08 2024年最新整理的Docker大全,非常详细,值得收藏!
- 2025-04-08 松勤软件测试:详解Docker,如何用portainer管理Docker容器
- 2025-04-08 Kubernetes(K8S)最全详解(万字图文总结)
- 2025-04-08 一文详解Docker轻量级虚拟化,镜像和容器
- 2025-04-08 水泵抽水控制案列(水泵的控制)
- 2025-04-08 液体混合装置的模拟控制(三菱PLC)
- 2025-04-08 容器化部署SpringBoot微服务(doctor容器化部署)
- 2025-04-08 Docker容器基于国产平台T3的入门部署方法说明——(3)构建镜像
- 2025-04-08 CTO 说了,如果发现谁用 kill -9 关闭程序就开除
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)