本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第四篇 Part 4: Registry & Workflows。
该系列全部文章将参考其余学习资料翻译,也会加入本身的学习做为部分注解。若有错误,欢迎指正。web
上篇文章介绍了使用 Dockerfile
进行自动化部署和 Dockerfile
的经常使用命令,本篇文章来探讨 Docker Registry。相似 GitHub,Docker Registry 是用来存储 Docker 镜像的地方。了解 Docker Registry 以前先来了解几个相关的知识吧。docker
Docker Registry 由三个部分组成:Index、Registry、Registry Client。数据库
能够把 Index 认为是负责登陆、负责认证、负责存储镜像信息和负责对外显示的外部实现,而 Registry 则是负责存储镜像的内部实现,而 Registry Client 则是 Docker 客户端。安全
Docker Index 使用如下工具来维护用户信息、校验镜像、以及维护公共 namespace:网络
同时 Docker Index 也用来分解 URL,方便用户认证和用户使用。架构
Registry 用来存储镜像和统计数据。然而它不会提供数据库服务,即它不会提供用户认证服务,由 S三、云文件和本地文件系统提供数据库支持。另外,由 Index 经过 Token 进行用户认证。有多种不一样的 Registry,下面是其中几个的例子:负载均衡
用于进行 pull 和 push 的操做,同时用于 docker push
时的登陆认证。工具
为了更好地理解 Registry Client 的工做流程,下面将详细描述一下五个案例中的 Docker Registry 工做流程。学习
X-Docker-Token
时才会返回 Token。私有仓库须要认证,而公有仓库不须要认证。没有 Index 的 Registry 是彻底受 Docker Clinet 控制的。这种模式最适合在私有网络中存储镜像文件。Registry 运行在一个和 Index 没有通讯的环境中,全部的认证问题和安全问题都须要用户本身解决。ui
在这种状况下,用户须要本身架设一个 Index 去解决存储和认证问题。固然,这种状况下可能会出现和官方 Index 时间不一样步的问题。Docker 官方也提供了一个很是有意思的东西叫作 chaining registries,主要是为了解决负载均衡和为具体请求指定具体的 Registry。
固然,咱们能够参考 本身搭建本地 Docker Hub 服务 来搭建本地的 Docker Hub。。
接下来的文章中将会继续介绍如何在以上每一个场景中使用 Docker Registry API,而且也会深刻了解 Docker 安全。