Container Registry 已弃用,并将按计划关停。更新后
2024 年 5 月 15 日,Artifact Registry 将在以下国家/地区托管 gcr.io
网域的映像:
之前未使用 Container Registry 的 Google Cloud 项目。2025 年 3 月 18 日之后,Container Registry 将关停。
如需详细了解弃用和关停时间表, 请参阅 Container Registry 弃用和 为 Container Registry 关停做好准备。
Artifact Registry 是 Google Cloud 上推荐的容器映像存储和管理服务。Artifact Registry 提供 容器管理功能(如 Container Registry) 功能和优势作为同时支持容器映像和非容器工件的全代管式服务,Artifact Registry 对 Container Registry 的功能进行了扩展。
您可以将 Container Registry 端点迁移到 Artifact Registry
gcr.io
个代码库,无需停机或服务中断
使用自动迁移工具迁移。
新功能摘要
Artifact Registry 通过以下功能扩展了 Container Registry 的功能:
- 代码库级访问权限控制。
- 在区域中托管工件,以缩短延迟时间和降低数据传输费用,并遵守数据驻留要求。
- 将映像流式传输到 Google Kubernetes Engine 和 Dataproc Serverless,以缩短工作负载启动时间。
- 从源代码部署到 Cloud Run。
- 针对代码库活动的审核日志记录。
- 强制执行组织政策,包括使用以下加密方式进行加密 客户管理的加密密钥 (CMEK) 和 地理位置限制。
- 除了容器中的操作系统漏洞之外,还会扫描 Go 和 Java 漏洞。
- 虚拟代码库:在一个区域内汇总多个代码库 单个主机(预览版)。
- 远程代码库,用于缓存来自上游来源(例如 Docker Hub 或 Maven Central(预览版)。
如需详细了解这些功能,请参阅功能对比。
mirror.gcr.io
上缓存的 Docker Hub 映像
Artifact Registry 会在 mirror.gcr.io
上缓存经常访问的公共 Docker Hub 映像。如需详细了解如何使用 mirror.gcr.io
,请参阅
拉取缓存的 Docker Hub 映像。
选择过渡选项
您可以使用两种类型的代码库转换到 Artifact Registry:
- Artifact Registry 中的 gcr.io 代码库
映射到 Container Registry
gcr.io
主机名的代码库。Artifact Registry 会将针对 Container Registry 主机的gcr.io
个请求重定向到 对应的 Artifact Registry 代码库。在以下情况下,请使用
gcr.io
代码库:- 您希望尽可能减少 将现有映像和自动化迁移到 Artifact Registry。
- 您无需在其他环境中设置 Artifact Registry 代码库 Google Cloud 项目或区域。
- Artifact Registry 中的标准制品库
标准模式 Artifact Registry 代码库 完全独立于任何现有的 Container Registry 主机。
在以下情况下,请使用标准代码库:
- 您有与特定区域存储数据相关的合规性要求。
支持
gcr.io
网域的代码库仅在与 Container Registry 主机相同的多区域(asia
、eu
和us
)中可用。 - 您想在与使用 Container Registry 的项目不同的项目中设置 Artifact Registry 代码库。
您想重新设计图片的存储方式和位置。例如:
- 请在与您的其他 Google Cloud 区域性资源(包括 Cloud Run 和 Google Kubernetes Engine 等运行时)位于同一区域中创建代码库。
- 在距离您的团队更近的区域设置代码库。例如,您可以在澳大利亚区域(而非
asia
多区域)或南美洲区域(而非us
多区域)创建代码库。 - 在同一项目和位置使用不同的 Identity and Access Management (IAM) 政策创建多个 Docker 仓库。例如,您可以在
us-east1
区域设置开发代码库和生产代码库,并为开发者提供不同级别的访问权限。
您想创建虚拟代码库,以用作从多个上游标准代码库下载内容的单个端点。
您想使用远程代码库充当外部来源的代理。
- 您有与特定区域存储数据相关的合规性要求。
支持
标准代码库、远程代码库、虚拟代码库和 gcr.io
代码库可以共存。例如,您可以在 Artifact Registry 中创建 gcr.io
制品库,以转换现有的 Container Registry 设置,并为新工作创建标准制品库。
使用我们的转换工具
使用以下工具可识别使用 Container Registry 的项目、将映像从 Container Registry 复制到 Artifact Registry,以及自动将多个项目从 Container Registry 迁移到 Artifact Registry。
- 查看 Container Registry 用量。
- 使用我们的自动迁移工具将项目从 Container Registry 迁移到 Artifact Registry、复制映像,并选择首选的过渡代码库类型。
- 使用 自动迁移工具、gcrane、Docker 或 gcloud CLI。
特性比较
下表总结了 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 存储桶。您可以直接执行映像管理操作 创建 Deployment |
注册表位置 | 一个可用区中只有四个多区域注册表主机 Google Cloud 项目。 | 在单区域或区域中创建多个单独控制的代码库 多区域位置 |
访问权限控制 |
|
|
Authentication | 提供多种身份验证方法,让您能够通过第三方客户端推送和拉取映像。 | Artifact Registry 支持与 Container Registry 使用相同的身份验证方法。如需了解详情,请参阅为 Docker 设置身份验证。 |
客户管理的加密密钥 (CMEK) | 使用 CMEK 来加密包含映像的存储分区。 | 使用 CMEK 对个别 代码库 |
使用 Google Cloud 控制台 | 通过 Google Cloud 控制台中的 Container Registry 部分来查看和管理 Container Registry 映像。 | 查看 Artifact Registry 和 Container Registry 的列表
Artifact Registry 中的代码库
部分。通过此页面管理您的 Artifact Registry 代码库和映像。
如果您点击 Container Registry 代码库,系统会将您转到 Google Cloud 控制台中 Container Registry 部分中的映像列表。 |
使用 gcloud CLI 和 API 命令 | 使用 gcloud container images 命令。命令支持缩写摘要。如果您未指定完整的摘要字符串,Container Registry 会尝试根据部分字符串找到正确的映像。
Container Registry 没有 REST API 或 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 ,请参阅将工件注册库与 VPC Service Controls 搭配使用。 |
VPC Service Controls | 您可以向服务边界添加 Container Registry。 | 您可以向服务边界添加 Artifact Registry。 |
使用工件分析进行元数据存储和分析 | 通过按需扫描扫描操作系统和语言包漏洞
在具有受支持操作系统的映像中运行。自动扫描仅返回操作系统
以及漏洞信息
详细了解
扫描。
|
通过按需和按需扫描,扫描操作系统和语言包漏洞
自动扫描。
详细了解
扫描。
|
映像流式传输 | 不可用 | 将 Artifact Registry 中的映像流式传输到 GKE 或 Dataproc 无服务器,以加快自动扩缩速度、缩短 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 命令。请参阅
gcloud artifacts
获取完整的 Artifact Registry 命令参考文档。