本文最后更新于 2020年09月26日
之前写过一篇自动更新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镜像以加速下载
2020.04.01更新
原创声明
本文由 NG6 于2020年03月02日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:群晖NAS下自动更新docker镜像 | sleele的博客
本文由 NG6 于2020年03月02日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:群晖NAS下自动更新docker镜像 | sleele的博客
你好,群晖NAS更新DOCKER后,都要重新配置,如何能做到自动配置呢?我的docker是SONARR,qb,jackett和raddar,还是每次都需要自己手动配置?
@hzz 正常来是不会的,检查一下你是否挂载配置文件夹到本地磁盘
比如
/config
每次自动更新完,我的qbittorrent就报错了 /usr/bin/qbittorrent-nox: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory。有什么解决方法吗
也就是说Watchtower部署完后, 只是在需要更新镜像时开启 Watchtower …… 等镜像自动更新完后, Watchtower 会自动停止 。是这样的吧?! 谢谢博主!
@snm
--run-once
是的,更新完即退出我运行之后意外退出,而且在临走之前还干掉了我一个docker容器。我又得重新配置了
@匿名 dev版遇到过一次,正式版没有遇到过,一般来说还是很稳定的
运行容器失败.看日志提示:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
是什么原因?
@匿名 不是root权限吧,前面加sudo