Container Registry 已弃用。自 2025 年 3 月 18 日起,Container Registry 已关停,且无法将映像写入 Container Registry。
托管在 Artifact Registry 上的 gcr.io 网址(包括具有 gcr.io 网址的 Google 自有映像)不受 Container Registry 关闭的影响。
Artifact Registry 是推荐用于在 Google Cloud上存储和管理容器映像的服务。Artifact Registry 提供的容器管理功能与 Container Registry 提供的相同,并且还包含其他功能和优势。作为同时支持容器映像和非容器工件的全托管式服务,Artifact Registry 对 Container Registry 的功能进行了扩展。
新功能摘要
Artifact Registry 通过以下功能扩展了 Container Registry 的功能:
- 代码库级访问权限控制。
- 在区域中托管制品,以减少延迟时间和数据传输费用,并遵守数据驻留要求。
- 将映像流式传输到 Google Kubernetes Engine 和 Google Cloud Serverless for Apache Spark,以缩短工作负载启动时间。
- 从源代码部署到 Cloud Run。
- 针对代码库活动的审核日志记录。
- 强制执行组织政策,包括使用客户管理的加密密钥 (CMEK) 进行加密和位置限制。
- 扫描容器中的操作系统和语言包漏洞。
- 虚拟制品库,用于汇总单个主机后面的多个制品库。
- 远程制品库,用于缓存来自 Docker Hub 或 Maven Central 等上游来源的制品。
如需详细了解这些功能,请参阅功能比较。
由 Google 维护的现有 Container Registry 映像
之前托管在 Container Registry 上的大多数 Google 拥有的映像现在托管在 Artifact Registry 的 gcr.io 代码库中。您无需更改网址即可提取这些图片。例如,您仍然可以使用 Cloud Build 官方构建器映像。
mirror.gcr.io 上的缓存 Docker Hub 映像
Artifact Registry 会在 mirror.gcr.io 上缓存经常访问的公共 Docker Hub 映像。如需详细了解如何使用 mirror.gcr.io,请参阅拉取缓存的 Docker Hub 映像。
特性比较
下表总结了 Container Registry 和 Artifact Registry 之间的区别。
| 功能 | Container Registry | Artifact Registry |
|---|---|---|
| 支持的格式 | 仅限容器映像 | 多种制品格式,包括容器映像、语言软件包和操作系统软件包。 |
| 域名 | gcr.io |
pkg.dev
如果您设置了 gcr.io 代码库,Artifact Registry 还可以存储 |
| 代码库模式 | 不适用 |
|
| 创建注册表 | 您可以通过将第一个映像推送到注册表主机来创建注册表主机。 Container Registry 将映像存储在 Google Cloud 项目中的 Cloud Storage 存储桶中,并且必须直接对存储桶应用授予注册表专用权限等操作。 |
创建代码库与推送和拉取是分开的操作,以便明确区分代码库管理与代码库使用。
在 Artifact Registry 中,您的 Google Cloud 项目没有要管理的 Cloud Storage 存储分区。您可以直接对代码库执行映像管理操作。 |
| 注册表位置 | 一个 Google Cloud 项目中最多只能有四个多区域注册表主机。 | 在单区域或多区域中创建多个单独控制的代码库。 |
| 访问权限控制 |
|
|
| Authentication | 提供多种身份验证方法,让您能够通过第三方客户端推送和拉取映像。 | Artifact Registry 支持与 Container Registry 相同的身份验证方法。如需了解详情,请参阅为 Docker 设置身份验证。 |
| 客户管理的加密密钥 (CMEK) | 使用 CMEK 来加密包含映像的存储分区。 | 使用 CMEK 来加密各个代码库。 |
| 使用 Google Cloud 控制台 | 通过 Google Cloud 控制台的“Container Registry”部分查看和管理 Container Registry 映像。 | 在 Google Cloud 控制台的 Artifact Registry 部分中查看 Artifact Registry 和 Container Registry 代码库的列表。通过此页面管理您的 Artifact Registry 代码库和映像。 如果您点击 Container Registry 代码库,系统会将您转到 Google Cloud 控制台的 Container Registry 部分中的映像列表。 |
| 使用 gcloud CLI 和 API 命令 | 使用 gcloud container images 命令。命令支持缩短的摘要。如果您未指定完整的摘要字符串,Container Registry 会尝试根据部分字符串查找正确的映像。
Container Registry 没有 REST 或 RPC API。 |
使用 gcloud artifacts docker 命令。命令不支持缩短的摘要。
如需了解 Container Registry 和 Artifact Registry gcloud CLI 命令的对比情况,请参阅 gcloud CLI 命令对比。 Artifact Registry 提供 REST 和 RPC API 来管理代码库和制品。 |
| Pub/Sub 通知 | 将更改发布到 gcr 主题。 |
发布对 gcr 主题的更改。如果您在现有 Container Registry 服务所在的同一项目中创建了代码库,则现有的 Pub/Sub 配置会自动生效。
如需了解详情,请参阅配置 Pub/Sub 通知。 |
| 审核日志记录 | Container Registry 不提供注册表活动的审核日志。 | 使用 Cloud Logging 跟踪代码库的更改。 |
| 缓存的 Docker Hub 映像 | mirror.gcr.io 是一个透传缓存,用于存储所有用户经常请求的 Docker Hub 映像。
mirror.gcr.io 现已托管在 Artifact Registry 上。 |
mirror.gcr.io 现已托管在 Artifact Registry 上。除非您在 VPC Service Controls 边界内使用 mirror.gcr.io,否则无需采取任何措施。如需详细了解如何在 VPC Service Controls 边界内使用 mirror.gcr.io,请参阅将 Artifact Registry 与 VPC Service Controls 搭配使用。 |
| VPC Service Controls | 您可以将 Container Registry 添加到服务边界。 | 您可以向服务边界添加 Artifact Registry。 |
| 使用 Artifact Analysis 进行元数据存储和分析 | 在具有受支持操作系统的映像中,通过按需扫描来扫描操作系统和语言包漏洞。自动扫描仅返回操作系统漏洞信息。详细了解扫描类型。
|
通过按需扫描和自动扫描来扫描操作系统和语言包漏洞。
详细了解扫描类型。
|
| 映像流式传输 | 不可用 | 在 Artifact Registry 中将映像流式传输到 GKE 或 Google Cloud Serverless for Apache Spark,以便在拉取大型映像时实现更快的自动扩缩、更快的 pod 启动和更低的延迟时间。 |
| Cloud Run 源代码部署 | 不可用 | 借助源代码部署,您可以使用单个 gcloud CLI 命令从源代码构建容器映像,将该映像存储在 Artifact Registry 中,然后将其部署到 Cloud Run。 |
| 价格 | Container Registry 的价格基于 Cloud Storage 的存储空间用量,包括存储空间和网络数据传输。由于注册表主机仅在多区域中可用,因此数据传输费用包括将映像部署到 Google Cloud | Artifact Registry 有自己的价格,其基于存储空间和网络数据传输。 |
| 配额 | Container Registry 具有固定的请求限制。还需遵守 Cloud Storage 配额。 | Artifact Registry 具有按项目和按用户划分的配额。默认情况下,每用户配额不受限制,但您可以配置每用户上限,以防止单个用户耗用过多的项目级配额。 |
gcloud 命令对比
下表汇总了 gcloud CLI 中的 Container Registry 命令和等效 Artifact Registry 命令。点击表中的链接可查看命令的参考页面。
该表不包含在 Container Registry 中没有等效命令的所有可用 Artifact Registry 命令。如需查看完整的 Artifact Registry 命令参考页面,请参阅 gcloud artifacts 文档。