纵欢1.v1最火的一句,纵欢免费阅读
DouJia 2025-05-08 12:30 29 浏览
Docker registry概述
用一句话解释Docker registry就是纵欢1.v1最火的一句:存放docker image的远程仓库。在使用docker的过程中,我们一定会用到docker Registry,当我们使用docker的pull命令(下载镜像),或者run一个本地没有的镜像时,docker engine会从默认的仓库下载对应的镜像。
目前,docker pull命令默认仓库是docker的官方仓库,这样就导致一个问题,下载镜像速度比较慢。所以在大型分布式docker集群中,通常都会配置一个私有的docker registry,这样能提高镜像****,从而提升应用的启动速度;也方便管理镜像。
docker registry的安装方式也很简单,docker公司已经把registry封装在一个docker容器中了,我们只需要下载这个容器,然后启动,就可以使用了,十分方便。但是,这样启动的方式,只能有一个registry,在稍大一点的集群中,单点故障和性能瓶颈问题就比较突出了,扩展成高可用的分布式结构势在必行,所以很多公司在优化registry方面做了很多工作,目前开源的有VMware的Habor[1]和京东的speedy[2]。
Docker Registry发展历史 - 2013年3月13日,docker在github上有了第一个release[3]
- 2013年7月3日,docker在github上发布了docker registry v1[4]
- 2015年1月30日,docker registry v2(项目名叫docker distribution)有了第一个release,同时停止更新docker registry v1[5]
在使用docker registry v2的时候需要注意,只有docker1.6以上版本才支持registry v2,这并不意味着1.6以后只能用v2版本,我们从源代码里可以看出,docker Engine在下载镜像的时候,会自动判断远端仓库是v1还是v2版,从而使用不同的下载策略,这个策略可太重要了。下面我们就讲一下v1和v2下载策略的区别。
图1 v1版串行下载layer
我们知道,一个docker image是由很多的layer组成的,registry v1的下载过程如图1所示,下载镜像时也是以layer为最小单元下载的,在v1的时代docker image,镜像结构有一种链表一样的组织,当下载完一个layer时,才能得到parent信息,然后再去下载parent layer,这样结构显然效率不高,所以在v2中,改变了这种结构,在image的manifest文件中存储了所有的layer信息,这样拿到所有的layer信息,就可以并行下载了,提高了下载效率,过程如图二所示。
图二 v2版升级为并行下载layer
还有就是使用的开发语言也有改变,从python变成go。
Docker registryV2整体架构图
图3 docker registry 2.0架构图[6]
从架构图上我们发现,registry v2的架构还是很简单的,它的核心是一个web服务器,从阅读源码也会发现,具体实现是用go语言的net/http包中的http.Server,在registry初始化时绑定了rest接口。请求会触发相应的handler,handler会从后端存储中取出具体的数据并写入response。这个过程也很容易理解。
Registry启动源码分析 下面我们就讲一下registry的启动过程,我也是第一次细读开源项目的源码,也讲一下我作为一个新手是如何阅读源代码的。
既然registry是以一个docker container形式运行的,要看它是如何启动的,当然首先看它的Dockerfile
图4 Dockerfile
主要做了两件事纵欢1.v1最火的一句:
1. 拷贝代码到容器中;
2. 编译成二进制可执行文件;
3. 指定程序入口;
当我们运行docker run –p 5000:5000 registry:2时,容器内部registry的启动命令其实是registry serve /etc/docker/registry/config.yml,
进入到项目中找main函数,发现程序的入口文件是/cmd/registry/main.go,main函数也只有一句话:
其实在加载RootCmd时已经做了命令绑定,子命令serve对应的实现在/registry/registry.go L 30,调用的内容主要有:
1. 读取配置文件;
2. 把配置参数传递给NewRegistry()函数,用来实例化一个registry对象(虽然对象这个词用在go语言里并不合适,单张这样类比更好理解);
3. registry进入端口监听状态,启动完毕。
Registry对象的结构定义在/registry/registry.go L68,Registry结构体声明了三个成员,如图5所示,有配置参数,app,还有一个http Server,显而易见,最重要的就是app这个成员了。
图5 Registry结构体
App结构体的定义在/registry/handlers/app.go L54,成员长,主要有:
1. driver 指明了后端存储,可以通过driver进行读/写/查询等操作
2. router 包含了http路由规则,把不同的请求分发到不同的handler上
3. registry 主要的app后端
4. accessController 访问控制器
NewApp()函数完成了App实例的初始化,实现在/registry/handlers/app.go L91。该函数的大体流程如下:
1. 声明一个app实例
2. 给app实例绑定web handler
3. 初始化app的后端存储驱动
4. 初始化app的密钥
5. 配置app的redis缓存
6. 初始化app的后端存储重定向功能
7. 根据参数初始化app的后端registry
8. 返回app实例
至此,/registry/registry.go的NewRegistry()也调用结束,返回了registry实例,调用registry的ListenAndServe()进入监听状态,直到registry结束。
体验&总结 作为一个阅读源码的新人,深感有一个好的IDE对于阅读源码是多么重要,我使用的是Idea14+GO插件作为开发环境,有一点需要注意的是,docker registry项目的引用都是github/***开头,所以需要把源码放在go语言的src下才能引用的到,这样也方便代码间跳转。同时,使用IDE的代码间Forward/Backward功能,可以快速跳转到上一个光标位置,这样也会提高代码阅读效率。
Docker在云计算中扮演了越来越重要的角色,Docker registry是整个平台重要的一环,但是它现在还存在很多问题,优化registry,是一个商用的容器云平台必须要做的一件事,阅读它的代码便是做优化的前提,下一期,为您带来《docker registry后端存储源码解读》。
Docker registryV2源码解读【下】镜像下载
镜像下载过程示意图
Docker engine发生了什么
Docker registry的相关接口
从driver实现的接口反推调用关系
来源:
https://www.youruncloud.com/docker/1_70.html
相关推荐
-
- 最火壁纸女小清新(最火壁纸女小清新图片)
-
20150328谁有这样的意境唯美图片最好要有天空和一个人2220130602我想找一张桌面壁纸,很早之前找到过最火壁纸女小清新了,可惜后来一直没能找到,20140226求好看的桌面壁纸,5张左右,梦幻+风景,如下图1020...
-
2025-05-11 14:30 DouJia
-
- 最火的论坛是什么软件,最火的论坛
-
截止到2024年3月21日最火的论坛,比较火的手机论坛如下1小红书这是一款年轻人分享生活方式的平台最火的论坛,涵盖美妆穿搭旅行美食影视等多个领域最火的论坛,提供丰富的内容分享2新浪微博作为一款超多人使用的论坛app,它提供国家大事科学成果娱...
-
2025-05-11 12:32 DouJia
-
- 最火快手名字兄弟两个字(最火快手名字兄弟两个字大全)
-
两个团队最火快手名字兄弟两个字,十多个人,将公司移到了宇宙中心五道口华清嘉园一套普通最火快手名字兄弟两个字的三居室,“公司名字我们沿用了快手,因为我们觉得,这个东;现在很多人都把流量两个词都没有搞清楚,就开始涉足这个行业了抖音上有一个,走...
-
2025-05-11 10:30 DouJia
-
- 国内最火app排行榜(国内最火app排行榜前十名)
-
2**陌陌**自2011年以来国内最火app排行榜,陌陌一直是领先国内最火app排行榜的开放式移动社交平台之一,也是国内最受欢迎国内最火app排行榜的社交软件它通过视频文字图片等多种方式,提供真实有效的交友方式,旨在为用户创造丰富的社交体...
-
2025-05-11 08:30 DouJia
-
- 手游最火游戏排名前十,手游最火游戏排名
-
人气最高手游排行榜依次是王者荣耀和平精英穿越火线枪战王者欢乐斗地主飞车等1王者荣耀王者荣耀是腾讯天美工作室群于2015年发行的一款MOBA手游手游最火游戏排名,自上线以来一直备受广大玩家喜爱,还吸引手游最火游戏排名了众多的女性玩家,是腾讯最...
-
2025-05-11 06:30 DouJia
- 中考家长最火的一句,中考家长最火的一句四字
-
版权声明中考家长最火的一句: 文章内容来源于"初中数学",版权归原作者,如有侵权请微信留言,我们将及时删除。 “九年级就像在打战,打的是一场人生之战,如果打赢了,未来的人生道路将平坦顺利;如果...
-
- 百度热搜
- 新浪热搜
- 1 习近平为何用这句话形容中俄关系
- 2 沸 印巴停火
- 3 热 中美经贸高层会谈还将继续
- 4 中国外贸进出口表现亮眼背后的底气
- 5 热 退休夫妻月入1.2万负债1.2亿
- 6 热 主播直播战斗机起降 引来境外间谍
- 7 热 印巴为何停火
- 8 17岁到67岁 你居然不爱我了
- 9 新 专家:印度打不起 巴基斯坦不想打
- 10 艺人吃中国饭砸中国锅绝不容忍
- 最新抖音
-
抖音2019最新版,抖音2019版本官方下载
多音字是语文学习中的一个重难点抖音2019最新版,从小学到高中抖音2019最新版,我们都会碰...
抖音电脑版在线观看官网:搞笑内容的天堂,抖音电脑版网页入口
在这个快节奏的现代社会里,人们越来越依赖于互联网来寻找娱乐和消遣。抖音电脑版在线观看官网,作为一个集...
探索抖音电脑版:小橙子的在线魅力,抖音小程序电脑版
在这个数字化不断进步的时代,抖音作为一款流行的短视频平台,已经吸引了数以亿计的用户。它以其独特的算法...
抖音卓拉小视频是真的吗,抖音卓拉小视频
抖音上的小视频本文图片湖北经视微信公众号平时注重亲子教育的爸爸抖音卓拉小视频,就拉上菲菲试了一把...
抖音名字女生简单气质带丽,抖音名字女生简单气质带丽字
1、网名公众号为你提供2022最新版的网名资源抖音名字女生简单气质带丽,种类包括情侣网名,女生网名,...
抖音电脑版:在线观看平台的全新体验,抖音电脑版在线观看平台推荐
随着数字媒体的飞速发展,抖音作为一个广受欢迎的短视频平台,已经成为了亿万用户日常生活中不可或缺的一部...
抖音电脑版在线观看:如何轻松打开和使用,抖音 电脑上看
在数字化时代,抖音已经成为全球范围内广受欢迎的短视频平台。然而,随着用户需求的多样化,越来越多的人希...
如何在电脑上轻松打开抖音网页版进行在线观看,抖音电脑网页版可以看直播吗
随着短视频文化的兴起,抖音已经成为全球最受欢迎的社交媒体平台之一。它以创意内容和便捷的分享机制吸引了...
- 最新快手
-
快手刷双击,24小时自动下单平台业务
1、快手刷双击是由网友提供快手刷双击的一款手机软件快手刷双击,如果快手刷双击你想在快手直播中被关注快...
快手极速版赚钱是真的吗?靠谱吗?(快手极速版赚钱是真的吗?2021)
人缘很好,但不代表很有异性缘。对于异性,有快手极速版赚钱是真的吗?靠谱吗?的人会很内敛,从来都好...
快手极速版下载领现金免费领红包快手(快手极速版下载安装领现金)
天猫bahlsen百乐顺旗舰店售价59.9元快手极速版下载领现金免费领红包快手,可领40元优惠券...
快手天道是谁(快手天道是哪里人)
对于祁天道为何停止直播快手天道是谁,这里提供一份详细快手天道是谁的解释祁天道,原名孟凡斌,曾是快手平...
快手极速版下载安装领现金是真的吗,快手极速版下载领现金是怎么回事
金币在快手极速版邀朋友得红包,将快手链接分享给朋友,朋友经过分享的链接下载软件并注册账号,就会得到系...
快手官网入口登录(快手官方网站登录入口1034977449822480877821083172)
cfa报名官网里会提供哪些信息?如果你对CFA特许金融分析师考试的备考方式摸不着头脑,也不知道该...
快手公司在哪,快手公司
核心摘要快手公司:解决创业难题的方法:一要多使用各位创业者、同行、前辈的产品快手公司;二是做...
快手创始人陈一笑简历,快手创始人陈一笑简历资料
1、宿华快手创始人兼CEO程一笑快手创始人兼首席产品官就像马化腾在千禧年想要作价100万卖掉一样快...
- 热门关注