Container Registry #
在深入讨论Container Registry之前,我们需要定义三个紧密相关的概念:
- 容器(Container)是“一个运行中的进程,其资源和能力受计算机操作系统管理”(云原生术语表)。
- 镜像(Image)是一组运行容器及其进程所需的归档文件。可以将其视为一个模板,基于它可以创建无限数量的容器。
- 仓库(Repository),简称repo,是存储镜像的空间。
Container Registry是专门化的 web 应用程序,用于分类和存储仓库。
镜像包含执行程序(容器内)所需的信息,并存储在仓库中,仓库又根据分类和分组存储在Container Registry中。构建、运行和管理容器的工具需要访问这些镜像,访问是通过引用Container Registry(即访问镜像的路径)来实现的。
解决的问题 #
云原生应用通常被打包成镜像,并以容器运行。Container Registry存储并提供运行这些应用所需的容器镜像。
提供的帮助 #
通过将所有容器镜像集中存储在一个地方,开发人员可以轻松访问这些镜像进行工作。
技术基础 #
Container Registry可以存储和分发镜像,或以某种方式增强现有的Registry。基本上,Registry是一个 web API,允许容器运行时存储和检索镜像。许多Registry提供接口,允许容器扫描或签名工具增强它们存储镜像的安全性。有些Registry专注于以高效的方式分发或复制镜像。任何使用容器的环境都需要一个或多个Registry。
这一领域的工具提供集成服务,如扫描、签名和检查它们存储的镜像。Dragonfly和Harbor是CNCF 项目,Harbor 最近成为首个符合OCI标准的Registry。每个主要云服务商都提供自有的托管Registry,许多其他Registry也可以独立部署,或者通过Helm等工具直接部署到 Kubernetes集群中。
知名厂商提供自有的托管Registry:
- Docker Hub -
docker.io/library
- ReadHat Quay.io -
quay.io
- Google GCR -
gcr.io
- Github ghcr -
ghcr.io
- K8S Registry -
registry.k8s.io
Keywords #
- Container
- OCI Image
- Registry
Projects #
- Harbor (graduated)
- Dragonfly (incubating)
- Distribution (sandbox)
- zot (sandbox)