Leave a Comment
本页面介绍如何推送和拉取映像,这是使用 Container Registry 时的两项最常见任务。要将新映像推送到 Container Registry,您首先需要使用注册表名称来标记该映像,如下所述。
要开始使用 Container Registry,请参阅快速入门。
如需了解如何列出、标记和删除映像,请参阅管理映像。
准备工作
确保您已具备以下条件:
- 已经安装最新版本的 Cloud SDK,其中包括
gcloud
命令行工具 - 已经安装 Docker
- 有权访问您将对其执行推送和拉取操作的注册表
- 已经将 Docker 配置为使用
gcloud
作为凭据帮助程序,或使用其他身份验证方法。要使用gcloud
作为凭据帮助程序,请运行以下命令:gcloud auth configure-docker
将映像推送到注册表
要将任何本地映像推送到 Container Registry,您首先需要使用注册表名称标记该映像,然后再进行推送。
使用注册表名称标记本地映像
- 确定注册表名称:
- 选择一个主机名,以此指定注册表的存储区域。此区域不是您所在的位置,而是映像的存储位置。举例来说,如果您身处澳大利亚,那么可能需要使用位于亚洲的主机。您有四种选择:
gcr.io
将映像托管在美国,但该位置未来可能会有所变化us.gcr.io
将映像托管在美国,但会存储在与由gcr.io
托管的映像不同的存储分区eu.gcr.io
将映像托管在欧盟asia.gcr.io
将映像托管在亚洲
- 选择一个映像名称,该名称可能与本地机器上的映像名称不同。
- 将主机名、Google Cloud Platform Console 项目 ID 和映像名称组合在一起:
[HOSTNAME]/[PROJECT-ID]/[IMAGE]
请参阅网域范围项目,了解如何使用含有域名的项目 ID。
- 选择一个主机名,以此指定注册表的存储区域。此区域不是您所在的位置,而是映像的存储位置。举例来说,如果您身处澳大利亚,那么可能需要使用位于亚洲的主机。您有四种选择:
- 运行以下命令以使用注册表名称标记本地映像:
docker tag [SOURCE_IMAGE] [HOSTNAME]/[PROJECT-ID]/[IMAGE]
其中[SOURCE_IMAGE]
是本地映像名称。此命令会使用注册表名称命名映像并应用latest
标记。如果要应用其他标记,请使用以下命令:docker tag [SOURCE_IMAGE] [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
将带有标记的映像推送到 Container Registry
要将带有标记的映像推送到 Container Registry,请使用以下命令:
docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]
此命令将推送带有 latest
标记的映像。如果要推送带有不同标记的映像,请使用以下命令:
docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
如果您将映像推送到采用新主机名的注册表,Container Registry 会在指定的多区域位置中创建一个存储分区。推送您的映像后,您可以执行以下操作:
- 转到 GCP Console 以查看注册表和映像。
- 运行
gcloud container images list-tags
来查看映像的标记和自动生成的摘要:gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]
此命令的输出类似如下所示:DIGEST TAGS TIMESTAMP
44bde... test 2017-..-..
从注册表中拉取映像
要从 Container Registry 中拉取映像,请使用以下命令:
docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
或
docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
其中:
[HOSTNAME]
列在控制台的位置下方。可为以下四个选项之一:gcr.io
、us.gcr.io
、eu.gcr.io
或asia.gcr.io
。[PROJECT-ID]
是您的 Google Cloud Platform Console 项目 ID。请参阅网域范围项目,了解如何使用含有域名的项目 ID。[IMAGE]
是 Container Registry 映像的名称。[TAG]
是应用于映像的标记。在注册表中,每个映像的标记各不相同。[IMAGE_DIGEST]
是映像内容的 sha256 哈希值。在控制台中,点击特定映像可查看其元数据。此摘要将被列为映像摘要。
要获取特定映像的拉取命令,请执行以下操作:
- 点击映像名称以转至特定注册表。
- 在该注册表中,选中要拉取的映像版本旁边的复选框。
- 点击页面顶部的显示拉取命令。
- 复制拉取命令,以此使用标记或摘要标识映像。