Docker 通过watchtower对registry私有库的容器的自动更新

Docker 通过watchtower对registry私有库的容器的自动更新小白防忘 首先得准备好两个虚拟机 我自己用的是 Ubuntu 镜像 并且两台虚拟机能够 ping 通 不能通信就不能进行镜像的拉取之类的操作了 方便实现更新 registry 仓库以及通过 watchtower 实现容器的自动更新 后面会有解释为什么使用两台虚拟机 registry 和 watchtower 可以在任意一个准备的虚拟机上运行 以下所有命令都是使用 root 账户进行操作 1 配置 registry 自己的私有库为了安全考虑是需要实现登录认证的 我自己用的是一种最简单的方式 通过 htpasswd 实现登录认证

docker run --entrypoint htpasswd registry:2.7.0 -Bbn username password > /root/registry/auth/passwd 
apt-get install apache2 #安装完成之后再执行下面的命令,参数和上面提供的参数使用方式相同 htpasswd -Bbn username password > /root/registry/auth/passwd 

做完准备工作,就先把registry容器跑起来。

docker run -dp 5000:5000 \ --restart=always --name registry \ -v /root/registry/data:/var/lib/registry \ -v /root/registry/auth:/auth \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM=Registry_Realm \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd \ registry:2 
vi /etc/docker/daemon.json #在打开的文件中添加(没有就自己创建) { 
    #ip为运行registry容器的服务器的ip地址 "insecure-registries": ["http://ip:5000"] } #保存之后重启docker即可生效 systemctl restart docker #重启docker之后执行 docker login ip:5000 #根据提示输入之前设置的用户名和密码即可。 
docker run -d --registry=always --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ #监视所有在docker中运行的容器 #config.json为登录私有库的认证信息,我用的是root账户,所以使用/root/目录,根据自己的账号改变 -v /root/.docker/config.json:/config.json \ containrrr/watchtower \ -i 10 -c # -i 10 表示每隔10s扫描一次 -c 表示清除所有镜像 
docker build -t index:v3 -f htmlfile . #构建新版本的镜像 docker rmi ip:5000/watch:v1.0 #删除之前的老版镜像 docker tag index:v3 ip:5000/watch:v1.0 #创建新版的镜像 docker push ip:5000/watch:v1.0 #对registry私有库里的镜像更新 #特别注意push到私有库的镜像名称必须和运行的项目容器的镜像名称相同,不然watchtower会判定项目容器的镜像没有更新。 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221856.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:08
下一篇 2026年3月17日 下午5:08


相关推荐

  • Docker Compose详解

    Docker Compose详解使用 DockerCompos 预计阅读时间 11 分钟 DockerCompos 是一种用于帮助定义和共享多容器应用程序的工具 使用 Compose 我们可以创建一个 YAML 文件来定义服务 并且使用一个命令 可以启动所有内容或将其全部关闭 使用 Compose 的最大优势是您可以在一个文件中定义您的应用程序堆栈 将其保存在项目 repo 的根目录中 它现在是版本控制的 并且可以轻松地让其他人为您的项目做出贡献 有人只需要克隆您的存储库并启动撰写应用程序 事实上 你现在可能会在 GitHub Gi

    2025年6月17日
    4
  • docker(2)CentOS 7安装docker环境「建议收藏」

    docker(2)CentOS 7安装docker环境「建议收藏」前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

    2022年7月28日
    9
  • docker 卸载出错

    docker 卸载出错场景:win10,一时脑抽,在安装了docker之后没有用正常的方式卸载(比如win10卸载,软件管家等)。直接把docker在c盘下的文件夹给删了,结果这一删,再也安不上了。现象:安装docker显示已经是最新版本(Existinginstallationisuptodate),如下图解决方法:…

    2025年10月6日
    6
  • CentOS部署基于flannel网络的docker

    CentOS部署基于flannel网络的docker

    2021年6月2日
    97
  • docker(1)下载安装for mac

    docker(1)下载安装for mac前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

    2022年7月30日
    8
  • 只需 5 分钟,手把手教会你在 Docker 和 Kubernetes 中进行应用发布!

    只需 5 分钟,手把手教会你在 Docker 和 Kubernetes 中进行应用发布!公众号关注 奇妙的 Linux 世界 设为 星标 每天带你玩转 Linux 看完本文希望读者能够了解到 Docker 的基本原理 Kubernetes 是怎么工作的 对于前端 K

    2025年8月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号