Docker Registry。它是全部仓库(包括共有和私有)以及工做流的中央Registry。 数据库
有三个角色,分别是index、registry和registry client 安全
角色1 …… index spa
index 负责并维护有关用户账户、镜像的校验以及公共命名空间的信息。它使用如下组件维护这些信息: 继承
- Web UI
- 元数据存储
- 认证服务
- 符号化
角色 2 --Registry token
registry是镜像和图表的仓库。然而,它没有一个本地数据库,也不提供用户的身份认证,由S三、云文件和本地文件系统提供数据库支持。此外,它经过Index Auth service的Token方式进行身份认证。Registries能够有不一样的类型。如今让咱们来分析其中的几中类型: 工作流
- Sponsor Registry:第三方的registry,供客户和Docker社区使用。
- Mirror Registry:第三方的registry,只让客户使用。
- Vendor Registry:由发布Docker镜像的供应商提供的registry。
- Private Registry:经过设有防火墙和额外的安全层的私有实体提供的registry。
角色 3 --Registry Client 社区
Docker充当registry客户端来负责维护推送和拉取的任务,以及客户端的受权。
Docker Registry工做流程详解。 cli
情景A:用户要获取并下载镜像。所涉及的步骤以下: 命名空间
- 用户发送请求到index来下载镜像。
- index 发出响应,返回三个相关部分信息:
- 该镜像所处的registry该镜像包括全部层的校验
- 该镜像包括全部层的校验
- 以受权为目的的Token > 注意:当请求header里有X-Docker-Token时才会返回Token。而私人仓库须要基本的身份验证,对于公有仓库这一点不是强制性的。
- 用户经过响应后返回的Token和registry沟通,registry全权负责镜像,它用来存储基本的镜像和继承的层。
- registry如今要与index证明该token是被受权的。
- index会发送“true” 或者 “false”给registry,由此断定是否容许用户下载所须要的镜像。