目前老张在自己的宝塔面板Docker里部署了好几个项目,Alist、ChatGPT-web、Trilium、思源笔记这四个常用的项目。对于这几个项目里,更新频率最高的就是思源笔记了。我在《宝塔面板下利用Docker部署思源笔记!》等几篇关于宝塔面板Docker的文章里也有说法,如果官方项目版本更新之后,需要将本地的容器和镜像删除之后,重新拉取最新的镜像,然后再新建容器进行重新配置,这样真的很麻烦。
后来经过向度娘请教之后,发现很多人在群晖里升级Docker容器用了watchtower这个项目来自动升级Docker里的项目容器,我便把他搬到了宝塔里来了。
watchtower本身也是Docker里一个项目,但是我们这次使用他是在宝塔面板的"计划任务”里。打开宝塔的“计划任务”新建一个“shell脚本”,执行周期可以设置成每周执行一次。而脚本内容可以按需复制以下代码:
1.运行一次,更新所有的容器,并清除旧的容器 。
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once
2.运行一次,更新所有的容器,并清除旧的容器,并删除watchtower容器。
docker run --rm --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once
3.指定容器更新,如无需自动更新所有稳定运行的容器,可以配置仅更新指定容器,只需要在命令后加上容器名.例如只更新nginx和redis。
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once nginx redis
有了这个神项目,就不再需要手动更新docker容器了。
1F
虽然搭了几个容器,还是没明白docker到底该咋操作
B1
@ 空空裤兜 开车的不必研究车的原理,能用就行。
2F
折腾不动了,docker不懂,哈哈哈
B1
@ 小熊 非常简单
3F
有了这个方便多了
B1
@ 老刘 是的,设置每周执行一次,永远不需要手动更新
4F
我一般都手动更新
B1
@ 网友小宋 试试这个,非常方便。
5F
跟大佬又学到了一招
6F
我的vps就放一个博客,浪费。。。
B1
@ 平顶山 那真的是浪费了,要多利用起来
7F
果然还是老张专业呀
B1
@ 林羽凡 没有你专业呀。
8F
有些项目我是能不更新就不更新,有些我是一出新版本我就选择更新,所以我一般选择手动更新。
B1
@ 老麦 主要是思源更新太快,功能也多。
9F
docker占内存不?
B1
@ 美樂地 看项目的,
10F
学习了~docker是个好东西;但是究竟要怎样用好它呢