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等。 本文选自CSDN知识库 阅读原文获取【Docker】图谱 和 更多优质内容 |
|