如何优雅的使用一条命令更新群晖docker容器-Watchtower教程
前言
群晖的docker是折腾的灵魂之一,给群辉增加了许多玩法,(更多玩法请查看我的其他文章)我本身也搭建了很多docker容器,之前也写过了很多文章,但是群晖容器更新一直是一个麻烦问题,需要重新映射文件夹配置端口等,虽然网络上搜索群晖更新docker有很多教程,但是要不已经年久失效,要不不够详细,经过一段时间的折腾,对于Watchtower这个自动化容器更新程序非常喜欢。本篇文章将记录如果部署Watchtower和使用它更新容器
脚本解析
为了容器和服务的安全这里我只贴上一个适用于大部分人的脚本,想实现更多玩法的请查看Watchtower官方文档。
下面的脚本将实现下面效果:使用群晖计划任务来执行脚本,手动运行计划以后,将自动创建一个名称为 watchtower的容器,容器会执行下面操作拉取emby-embyserver1最新的镜像,然后使用相同的配置去更新emby-embyserver1容器 emby-embyserver1 容器更新成功以后,会自动删除本次运行的Watchtower容器。
注意!!!最后一行的emby-embyserver1为需要更新容器的名称,多个容器之前用空格隔开,请按照需求修改为自己想更新的容器的容器名、容器名、容器名(如果不添加此参数将默认更新全部容器这里非常不推荐)
docker run --rm
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower
--cleanup
--run-once
emby-embyserver1
Watchtower搭建过程
Watchtower: 是一款实现自动化更新 Docker 镜像与容器的实用工具.它监控着所有正在运行的容器以及相关镜像,当检测本地镜像与镜像仓库中的镜像有差异时,会自动拉取最新镜像并使用最初部署时的参数重新启动相应的容器.
1、登录群辉, 打开docker→注册表搜索 Watchtower,找到第一个双击下载版本选择最新版本即可(latest)。
2、下载好以后无需运行和配置,打开群晖控制面板→任务计划→新增→计划的任务→用户定义脚本
3、常规中选择root账户,出现的提示框请选择确定。
4、计划中勾选在以下日期运行其他保持默认。
5、任务设置中勾选通过电子邮件发送运行详情,【用户定义的脚本】粘贴上自己 修改好的脚本,这样在脚本运行完成以后会有邮件通知,然后点击确定会出现一个任务。 (如果未配置邮件通知请查看我这篇文章。)
群晖设置邮件通知微信通知_NAS存储_什么值得买 (smzdm.com)
效果演示
1、效果演示中将通过Watchtower来自动更新embyserver,目前embyserver的版本为4.6.7.0,官方最新版本为4.7.0.62 。
2、回到计划任务界面,找到刚才添加的任务,选中之后点击上面的运行,然后点击一次。
3、点击运行以后,容器列表会自动创建镜像更新容器objective_dubinsky,因为后台需要下载新的镜像,所以需要一些时间,下载好以后会用旧的容器配置新的镜像重新部署。(等待时间看网络情况)
4、容器配置成功以后会向之前任务计划里面配置好的邮箱发送邮件,大概内容如下。
5、登录emby,看到已经升级到最新版本。
总结
使用Watchtower来更新docker镜像,大大简化了部署的重复步骤,非常推荐使用。
注意事项
非常不建议使用默认配置进行全部镜像的更新,如果容器运行稳定且没有大的功能更新不建议进行镜像更新,重要容器请先备份(暂停容器以后,在设置→导出,选择完整导出之后在操作,这样出问题以后也方便恢复)。
教程结束
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
翵大鹬
第二代码有没有什么要求我看你发的代码和你填的代码每行都多个空格\。
校验提示文案
yao买de猫
校验提示文案
繁星灬梦雨
校验提示文案
北极-熊熊
校验提示文案
云导者
校验提示文案
反派
校验提示文案
白背心
校验提示文案
空步独舞
校验提示文案
尛昊
度娘docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once这个可以用。
校验提示文案
撸点无下限
这个命令可以用 把“XXXXXXXX”替换成自己的docker容器的名称就可以了
校验提示文案
wijdp
校验提示文案
wijdp
校验提示文案
撸点无下限
这个命令可以用 把“XXXXXXXX”替换成自己的docker容器的名称就可以了
校验提示文案
繁星灬梦雨
校验提示文案
尛昊
度娘docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once这个可以用。
校验提示文案
空步独舞
校验提示文案
白背心
校验提示文案
反派
校验提示文案
云导者
校验提示文案
翵大鹬
第二代码有没有什么要求我看你发的代码和你填的代码每行都多个空格\。
校验提示文案
北极-熊熊
校验提示文案
yao买de猫
校验提示文案