分享

distribution源码分析之Distribution架构

 北书房2014 2016-01-18

registry简介

谈及docker registry,docker爱好者最先想到的自然是Docker Hub。Docker Hub作为Docker官方支持的Docker Registry,拥有全球成千上万的Docker Image。全球的Docker爱好者除了可以下载Docker Hub开放的镜像资源之外,还可以向Docker Hub贡献镜像资源。在Docker Hub上,用户不仅可以享受公有镜像带来的便利,而且可以创建私有镜像库。Docker Hub是全国最大的Public Registry,另外Docker还支持用户自定义创建Private Registry。Private Registry主要的功能是为私有网络提供Docker镜像的专属服务,一般而言,镜像种类适应用户需求,私密性较高,且不会占用公有网络带宽。


registry版本信息

在docker1.6版本之前只支持docker registry:v1版本,使用python写的,现在官方更支持的是v2版本,即distribution,是用go语言实现的。Docker Hub已经支持两个版本,以后转移到v2是必然的,在这里只对该版本作出分析。


Distribution总架构图

在资料匮乏的情况下学习Distribution的源码是一个劳累的过程,但却可以从中理解Distribution的设计原理以及架构。Distribution架构相对于Docker来说相当简单,主要有提供服务的前端以及存储数据的后端组成。 



可见,Distribution前端作为整个架构的主体部分,首先读取用户运行registry时提供的yml文件参数配置Configuration,然后根据该配置参数以及Context新建并初始化handler.App,根据该App初始化了handler并将其赋值给Server,从而新建了一个Registry。 

其中,要指明的是App中信息量庞大,注册了各endpoint需要调用的句柄,设置了存储驱动以及存储cache,auth以及Proxy等。 
Http Server根据请求的类型发送至相应的router,调用对应的Handler来提供服务,handler会与Storage通信传送数据。这块儿具体数据传送流程将在以后更新。



本文选自CSDN知识库

阅读原文获取【Docker】图谱 和 更多优质内容



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多