目前老张在自己的宝塔面板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容器了。
虽然搭了几个容器,还是没明白docker到底该咋操作
@空空裤兜: 开车的不必研究车的原理,能用就行。
@老张: 代码抄走了,不用手动搞了,也不会学watchtower的配置了,定时任务简单啊
折腾不动了,docker不懂,哈哈哈
@小熊: 非常简单
有了这个方便多了
@老刘: 是的,设置每周执行一次,永远不需要手动更新
我一般都手动更新
@网友小宋: 试试这个,非常方便。
跟大佬又学到了一招
我的vps就放一个博客,浪费。。。
@平顶山: 那真的是浪费了,要多利用起来
果然还是老张专业呀
@林羽凡: 没有你专业呀。
有些项目我是能不更新就不更新,有些我是一出新版本我就选择更新,所以我一般选择手动更新。
@老麦: 主要是思源更新太快,功能也多。
docker占内存不?
@美樂地: 看项目的,
学习了~docker是个好东西;但是究竟要怎样用好它呢
这样会影响数据吗,担心数据会丢失
@Roy: 不会的,放心用
@老张: 十分感谢
@老张: docker: Error response from daemon: Conflict. The container name “/watchtower” is already in use by container “a4781562b7e488c3a0d588a88254678e5a0f6d46a337d2823d522afb92c7cca2”. You have to remove (or rename) that container to be able to reuse that name.
See ‘docker run –help’.
运行了提示这个
@Roy: 这个我还真没有问题过。