分站入口:抖音快手短视频解析 | 领取购物优惠券
百度360必应搜狗本站头条热榜
当前位置:网站首页 > 自媒体资源 > 正文

纵欢1.v1最火的一句,纵欢免费阅读

DouJia 2025-05-08 12:30 150 浏览

  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实现的接口反推调用关系

  

  

来源:

纵欢1.v1最火的一句,纵欢免费阅读

https://www.youruncloud.com/docker/1_70.html

特别声明: 本站抖音最火导航提供的信息都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由抖音最火导航实际控制,在收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,抖音最火导航不承担任何责任。

相关推荐

腾讯向抖音索赔,腾讯视频起诉抖音侵权索赔1亿
腾讯向抖音索赔,腾讯视频起诉抖音侵权索赔1亿

(有什么看法可在文章最底处评论)看到这里你们有什么想说腾讯视频起诉抖音侵权索赔1亿的吗腾讯视频起诉抖音侵权索赔1亿?可以在底部留言喔~  ▍本号声明腾讯视频起诉抖音侵权索赔1亿:如有侵权腾讯视频起诉抖音侵权索赔1亿,请联系版主进行删除  ▍...

2026-07-16 05:30 DouJia

抖音集音符(抖音集音符教程)
抖音集音符(抖音集音符教程)

1、抖音集音符的方法主要有以下三种方法一邀请好友得音符打开抖音抖音集音符,点击左上角的“集音符”活动入口在活动页面抖音集音符,点击“邀请好友得音符”打开好友列表,选择想要邀请的好友,点击“邀请”也可以通过点击“音符小助手”,在抖音“...

2026-07-15 22:31 DouJia

抖音超品日(抖音超品日是什么意思)
抖音超品日(抖音超品日是什么意思)

新品首发与达人合作新品薇诺娜光透皙白淡斑精华液薇诺娜修白瓶携手抖音电商超级品牌日IP独家首发上新邀请抖音达人朱梓骁豆豆babe多余和毛毛姐前往新加坡参与联动抖音超品日,为新品造势云南溯源行动与社会责任薇诺娜在7月抖音超品活动中抖音超品日,根...

2026-07-15 15:30 DouJia

抖音里最火的十首歌,抖音最火的十大歌

截至2023年6月抖音最火的十大歌,十大抖音最火的歌曲如下你笑起来真好看不仅仅是喜欢从前说。十大网红歌曲是沙漠骆驼燃烧我的卡路里学猫叫离人愁带你去旅行答案你莫走大田后生仔野狼disco可不可以1沙漠...

抖音冠军是谁,抖音冠军驾到

  洗面奶是所有护肤程序里的第一步,只有将脸部清洁干净才能很好的吸收后续保养品。那么什么牌子的洗面奶比较好用呢?女生会为了拥有细致肌肤而选择护肤产品,其中最逃不开的就是洗面奶。那么在选择收缩毛孔洗面奶...

有一个黄app和抖音一样是什么,有个黄软件和抖音一样的
有一个黄app和抖音一样是什么,有个黄软件和抖音一样的

1、4,抖音有黄点是有人访问主页吗抖音上的黄点是指不一定是最近看过你的人,可能就是在你的手机通讯录,或者对方通讯录有你的号码,是有可能在主页搜索你的账号进去看过,会推送一个黄色的点在那里,但是更多的就是抖音系统在给你推荐可能认识的人,提醒你...

2026-07-14 22:30 DouJia