除了之前提到过的手动更新群晖Docker容器的方法,又发现一种使用Watchtower结合定时任务自动更新Doker容器的方法。
优点是不需要人干预,在设定的时间间隔会自动启动Watchtower更新有新版本的容器。
缺点是大部分地区需要科学才能更新成功,而且在更新期间群晖会发一堆类似“容器XXX意外停止”的警告通知。
实现步骤
1 检查群晖“Container Manager”应用,需要更新的容器是否已经开启。这个方法只会检查并更新已开启的容器。
2 控制面板,任务计划,新建一个“计划的任务”,用户自定义脚本。
3 名称随意,用户选“root”,计划栏,日期建议每周的某一天执行,例如周三。时间选择不繁忙的时间段,比如凌晨三点。任务设置中,用户自定义脚本处填写如下脚本:
docker run \
--rm \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e HTTP_PROXY="http://用户名:密码@IP地址:端口" \
-e HTTPS_PROXY="http://用户名:密码@IP地址:端口" \
containrrr/watchtower \
--cleanup \
--run-once
-e参数部分是代理服务器信息,使用如上格式填写你的科学信息,如果没有密码,则可以省去“:密码”的部分。
Watchtower会在完成任务后自己关掉自己。
按理说,这种方法应该可以在任何Linux发行版实现,用Crontab定时执行即可。所以如果你的Docker是跑在Debian或Ubuntu,也可以尝试用Crontab设定一个定时任务去运行Watchtower执行更新。
#Docker #watchtower #群晖