13.docker私服registry搭建

容器注册

Docker Hub是最大、使用最广泛的docker容器注册托管中心。

  • registry用于保存docker镜像,包括镜像的层次结构和元数据。
  • 启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从registry中下载该镜像并保存到本地;
  • 拉取镜像时,如果不知道registry仓库地址,默认从Docker Hub搜索拉取镜像

我们可以利用docker自己搭建私有registry。一般私有registry不像docker hub功能齐全,而是只提供了基础功能,比较适合小团队。

启动私有docker registry

启动docker registry

docker container run -d -p 5000:5000 --name registry registrydocker container ls
# CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                  PORTS                    NAMES
# d88855125dd4   registry      "/entrypoint.sh /etc…"   1 second ago     Up Less than a second   0.0.0.0:5000->5000/tcp   registry

重新给镜像打标签,并且推送到私有registry

docker pull hello-worlddocker run --name hello hello-world docker tag hello-world 127.0.0.1:5000/hello-worlddocker image lsdocker push 127.0.0.1:5000/hello-worlddocker container rm hellodocker image remove hello-worlddocker image remove 127.0.0.1:5000/hello-worlddocker image ls

从本地删除对应镜像缓存

从私有registry尝试拉取镜像

docker pull 127.0.0.1:5000/hello-worlddocker image ls

将私有registry的数据持久化到宿主机

docker container kill registrydocker container rm registrydocker container run -d -p 5000:5000 --name registry -v $(pwd)/registry-date:/var/lib/registry registryls -aldocker push 127.0.0.1:5000/hello-worldls -altree registry-date

使用Swarm将registry部署到线上

使用swarm部署registry服务,利用routing mesh特性

我们先部署5个manager节点,

docker node lsdocker service create --name registry --publish 5000:5000 registrydocker service ps registry
# ID             NAME         IMAGE             NODE       DESIRED STATE   CURRENT STATE            ERROR     PORTS
# jfwgt7gmwu62   registry.1   registry:latest   manager1   Running         Running 13 seconds ago  

利用routing mesh特性,我们可以在任意节点上从私有registry拉取镜像

curl localhost:5000/v2/_catalog
# {"repositories":[]}docker pull hello-worlddocker tag hello-world 127.0.0.1:5000/hello-worlddocker push 127.0.0.1:5000/hello-worldcurl localhost:5000/v2/_catalog
# {"repositories":["hello-world"]}docker pull nginxdocker tag nginx 127.0.0.1:5000/nginxdocker push 127.0.0.1:5000/nginxcurl localhost:5000/v2/_catalogdocker service create --name nginx -p 80:80 --replicas 5 --detach=false 127.0.0.1:5000/nginxdocker service ps nginx

可以看到5个节点都成功拉取到了私服的镜像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux之系统安全与应用

Linux系统提供了多种机制来确保用户账号的正当,安全使用。 系统安全措施 一. 清理系统账号 1.1 将用户设置为无法登录 Linux系统中除手动创建的各种账号外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户root以外,其他的…

【issue-halcon例程学习】measure_pin.hdev

例程功能 检测IC引脚。代码更多地关注测量函数的可视化情况。 代码如下 dev_close_window () read_image (Image, ic_pin) get_image_size (Image, Width, Height) dev_open_window (0, 0, Width / 2, Height / 2, black, WindowHandle) set_display_font (WindowHandle, 14,…

免费开源的微信小程序源码、小游戏源码精选70套!

微信小程序已经成为我们日常的一部分了,也基本是每个程序员都会涉及的内容,今天给大家分享从网络收集的70个小程序源码。其中这些源码包含:小游戏到商城小程序,再到实用的工具小程序,以及那些令人惊叹的防各大站点的小…

【Linux】文件描述符 | 重定向 | C文件指针与fd的关系 | 用户级缓冲区

文章目录 一、文件描述符1. 理解:Linux下一切皆文件2. 文件描述符(fd)的概念3. 文件描述符的分配规则4. 进程创建时默认打开的 0 & 1 & 2 号文件 二、重定向1. 重定向的本质2. 使用dup2系统调用函数3. bash下的三种重定向4. 三种重定…

全面理解“张量”概念

1. 多重视角看“张量” 张量(Tensor)是一个多维数组的概念,在不同的学科领域中有不同的应用和解释: 物理学中的张量: 在物理学中,张量是一个几何对象,用来表示在不同坐标系下变换具有特定规律的…

业务流程设计相关学习笔记

一文读懂华为LTC流程和变革精髓! 第一个是从概念到市场。 也就是之前讲的 IPD 开发流程。 从捕捉到客户新的需求开始,到新产品完成开发并成功推向市场,最终得到客户的认可为止; 第二个是从市场到线索。 具体是指 MTL 流程&#x…

TI毫米波雷达

收集一些介绍TI毫米波雷达优秀的帖子,供未来学习参考 1. TI毫米波雷达日记TI毫米波雷达笔记_网易独家音乐人Mike Zhou的博客-CSDN博客

(N-141)基于springboot,vue网上拍卖平台

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plusredi…

GNS3连接Vmware虚拟机

1 安装配置Gns3、Vmware 安装过程略,最终版本号: Gns3:2.2.44.1 Vmware:17.0 建议保持一致,特别是Gns3,功能虽然强大的,但bug问题感觉也不少 2 虚拟机配置 新建两台Ubuntu 22.04虚拟机&#…

素引是什么

素引(Bloom filter)是一种概率型数据结构,用于快速判断一个元素是否属于一个集合。它可以用来检索大规模数据集中是否存在某个元素,具有高效的查询速度和较低的存储需求。 素引的工作原理如下: 初始化:创…

【JavaScript权威指南第七版】读书笔记速度

JavaScript权威指南第七版 序正文前言:图中笔记重点知识第1章 JavaScript简介第一章总结 第2章 词法结构注释字面量标识符和保留字Unicode可选的分号第二章总结 第3章 类型、值和变量【重要】原始类型特殊类型第三章总结 第4章 表达式与操作符表达式操作符条件式调用…

【JAVA面试精选篇-初生牛犊不怕虎】

文章目录 🌽 简介🧺 线程池🌄 Redis⏰ JVM🚛 数据结构🍎 Mysql🍡 结语🌽 简介 海阔凭鱼跃,天高任鸟飞! 学习不要盲目,让大脑舒服的方式吸收知识!!! 本人马上离开济南,回泰安发展,为了积极准备面试,目前在梳理一些知识点,同时希望能够帮助到需要的人… …

Rabbitmq调用FeignClient接口失败

文章目录 一、框架及逻辑介绍1.背景服务介绍2.问题逻辑介绍 二、代码1.A服务2.B服务3.C服务 三、解决思路1.确认B调用C服务接口是否能正常调通2.确认B服务是否能正常调用A服务3.确认消息能否正常消费4.总结 四、修改代码验证1.B服务异步调用C服务接口——失败2.将消费消息放到C…

智能AI系统开发,专业软件硬件物联网开发公司,探索未来科技新纪元

在信息时代,人工智能(AI)、物联网等前沿技术日益受到人们的关注。智能AI系统、专业软件硬件物联网开发公司应运而生。今天,我们将向大家介绍一家位于XX城的专业公司,致力于智能AI系统开发和软件硬件物联网领域的创新研…

大数据安全 | 期末复习(下)

文章目录 📚安全策略和攻击🍋🐇安全协议🐇IPsee🐇SSL🐇SSH🐇S/MIME协议🐇公钥基础设施PKI🐇PGP🐇HTTPS🐇防火墙🐇防毒墙🐇…

Python学习笔记--函数

本文摘自朱雷老师所著《Python工匠》一书内容,作为笔记予以记录。 学习本章内容,我印象最深的是“虽然函数可以消除重复代码,但绝不能只把它看成一种复用代码的工具,函数最重要的价值其实是创建抽象,而提供复用价值甚…

解决:‘chromedriver’ executable needs to be in PATH

解决:chromedriver’ executable needs to be in PATH 文章目录 解决:chromedriver’ executable needs to be in PATH背景报错问题报错翻译报错位置代码报错原因解决方法方法一:检查python安装路径有没有添加到环境变量里面方法二&#xff1…

谷歌vue插件安装包

链接:https://pan.baidu.com/s/1wTCqn7ttc-rF_wZScfEgPw?pwde7k6 提取码:e7k6 修改D:\谷歌浏览器插件安装包\devtools-main\packages\shell-chrome下manifest.json文件 将里面这四个文件地址改为src下面,因为地址在src下,直接…

Redis面试题34

什么是人工智能?它的应用领域有哪些? 答:人工智能(Artificial Intelligence,AI)是一种模拟、模拟和扩展人类智能的计算机系统。它指的是计算机系统能够模拟和执行人类智能,包括感知、学习、推理…

头歌C语言指针

目录 第1关:用指针法输入12个整数,然后按每行4个数输出 任务描述 第2关:指针变量作为函数参数实现两变量交换值 任务描述