Duke Yin's Technology database

使用Watchtower定期自动更新群晖的Docker容器

除了之前提到过的手动更新群晖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执行更新。

# # #

发布评论

评论

标注 * 的为必填项。