所有分类
  • 所有分类
  • FCPX插件
  • Adobe插件
  • 素材预设
  • 应用教程
  • Luts预设

[折腾]群辉Watchtower 自动更新Docker映像与容器

前言

群晖的Docker功能非常丰富,不过也有不完美的地方,映像和容器更新比较麻烦,比如我的Docker容器运行了十几个,如果通过手动更新非常繁琐,容器还需要重新配置,本文就介绍如何通过watchtower全自动更新Docker映像,并保留原始配置重新运行容器。

watchtower 是一个可以监控正在运行的容器镜像是否有更新的工具,当本地镜像与远端镜像有差异的时候,可以自动使用当前容器的运行参数以新镜像重新创建一个新的容器,并删除旧的容器。这有点类似于我们手机应用商店更新 APP 一样。

部署教程

下载watchtower映像

群晖Docker搜索watchtower,下载containrrr/watchtower映像,下完即可,无需运行和配置。

%title插图%num

手动更新容器,并清除旧容器

这里我们通过群晖的计划任务运行watchtower,打开群晖任务计划,新建一个计划任务-用户自定义脚本,填入以下脚本。

# 运行一次,更新所有的容器,并清除旧的容器  
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once

当需要更新容器的时候,手动运行一下该计划任务即可,Docker容器中会运行一个watchtower,更新完成后watchtower自动停止。

手动/定时更新容器,完成后删除本次运行Watch­tower容器

还是通过群晖的计划任务运行watchtower,每次更新完自动删除运行的watchtower容器,下次更新的时候再重新生成。

# 运行一次,更新所有的容器,并清除旧的容器,并删除watchtower容器
docker run --rm --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once

如果需要定时自动更新,将任务计划设置成固定周期自动运行即可。

%title插图%num

指定容器更新

如无需自动更新所有稳定运行的容器,可以配置仅更新指定容器,只需要在命令后加上容器名.例如只更新nginx和redis。

#只更新nginx和redis
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once nginx redis

注意指定容器需填写 容器名 ,并非镜像名.由于部分容器启动时可能没有定义 –name 参数,请ssh登录群晖执行 docker ps 查询核对容器名.

其他更多参数见官网 https://containrrr.dev/watchtower/arguments/

原文链接:https://www.abu3d.com/blog/automatic-docker
声明:本站所有文章如无特殊说明,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站或各类媒体平台;本站分享的资源仅供学习与交流使用,请勿商用,否则后果自负;如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

0
分享海报

评论0

请先

站点公告

测试公告!
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码