)
之前写过一篇自动更新docker image的文章,Watchtower的功能十分强大,参数选项非常多,但是在nas上其实用不到这些高级参数,我今天就抽丝剥茧,简单给出一个通用的参数,帮助大家更方便的更新docker镜像
教程
ssh进群晖,如果不懂
请先开启群晖ssh登陆,控制面板-终端和SNMP,启动SSH功能,点击应用(用完后记得关闭ssh功能)
ssh 你的群晖用户名@你的群晖IP -p22
输入密码后进入,之后在终端输入sudo -i
登陆root账户(还需要再输入一边密码)
部署Watchtower
Watchtower可以自动更新镜像,在不丢失内容的情况下重启更新后的容器
这个命令是自动扫描全部镜像,发现有新镜像是自动更新下载并重启容器,再遍历完一遍后自动退出watchtower容器,并且会在退出之前会清理掉老旧镜像,防止浪费磁盘
sudo docker create \--name watchtower_run_once \-e TZ=Asia/Shanghai \-v /var/run/docker.sock:/var/run/docker.sock \containrrr/watchtower --cleanup --run-once
nas上的服务基本是长期开启的,所以只需要在你想更新镜像的时候再去手动启动watchtower即可,若你比较追新,一旦有新镜像就想使用,可以让watchtower时刻监视,这个命令会每10分钟查询一次docker hub看看是否有镜像需要更新
sudo docker run -d \ --name watchtower \ --restart=always \ -e TZ=Asia/Shanghai \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --cleanup --interval 600
也可以使用cron表达式,watchtower和平常5个字符的cron表达式不一样,需要6个字符,并且第二位不是时
,第三位才是,这个例子是每天早上4点检查更新
$ docker run -d \ --name watchtower \ --restart=always \ -e TZ=Asia/Shanghai \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --cleanup --schedule "0 0 4 * * *"
如果你的网络下载镜像很慢,可以参照我的另一篇文章修改docker hub镜像以加速下载