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 和 Managed Service 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 将映像存储在您项目的 Cloud Storage 存储桶中,并且必须将授予注册表专用权限等操作直接应用于存储桶。 Google Cloud |
创建代码库与推送和拉取是分开的操作
以便将代码库管理与代码库使用明确分开。
在 Artifact Registry 中,您的项目中没有要管理的 Cloud Storage 存储分区。 Google Cloud 您可以直接对代码库执行映像管理操作 。 |
| 注册表位置 | 一个项目中仅提供四个多区域注册表主机。 Google Cloud | 在区域或 多区域中创建多个单独控制的代码库。 |
| 访问权限控制 |
|
|
| Authentication | 提供多种身份验证方法,让您能够通过 第三方客户端推送和拉取映像。 | Artifact Registry 支持与 Container Registry 使用相同的身份验证方法。如需了解详情,请参阅为 Docker 设置身份验证。 |
| 客户管理的加密密钥 (CMEK) | 使用 CMEK 来加密包含映像的存储分区。 | 使用 CMEK 来加密各个 代码库。 |
| 使用 Google Cloud 控制台 | 通过控制台的 Container Registry 部分来查看和管理 Container Registry 映像。 Google Cloud | 在 Artifact Registry 部分中查看 Artifact Registry 和 Container Registry
代码库的列表。 Google Cloud 通过此页面管理您的 Artifact Registry
代码库和映像。
如果您点击 Container Registry 代码库,系统会将您转到控制台的 Container Registry 部分中的映像列表 Google Cloud 。 |
| 使用 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 或 Managed Service for Apache Spark ,以便在 拉取大型映像时实现更快的自动扩缩、更快的 pod 启动和更低的延迟。 |
| Cloud Run 源代码 部署 | 不可用 | 源代码部署让您可以使用单个 gcloud CLI 命令从源代码构建容器映像,将映像存储在 Artifact Registry 中,并将其部署到 Cloud Run。 |
| 价格 | Container Registry 的价格基于 Cloud Storage 的用量,包括存储空间和网络数据传输。由于注册表主机仅在多区域中提供,因此数据传输 费用包括将映像部署到 Google Cloud | Artifact Registry 有自己的 价格, 其基于存储空间和网络数据传输。 |
| Quota | Container Registry 具有固定的请求限制。Cloud Storage 配额也 适用。 | Artifact Registry 具有按项目和用户划分的 配额。默认情况下,每用户配额不受限制,但您可以配置每用户上限,以避免单个用户占用过多的项目级配额。 |
gcloud 命令对比
下表汇总了 gcloud CLI 中的 Container Registry 命令和等效 Artifact Registry 命令。点击表中的链接可查看命令的参考页面。
该表不包含在 Container Registry 中没有等效命令的所有可用 Artifact Registry 命令。如需查看完整的 Artifact Registry 命令参考页面,请参阅
gcloud artifacts
文档。