Artifact Registry 是一项支持软件包和其他格式的通用软件包管理服务。了解如何从 Container Registry 过渡,以便更灵活地控制您的工件。

Container Registry 快速入门

Container Registry 是一个在 Google Cloud 上运行的私有容器映像注册表。

本快速入门向您展示了如何执行以下操作:

  • 配置 Docker 以向 Container Registry 进行身份验证
  • 将映像标记并推送到注册表
  • 从注册表中拉取映像

本快速入门重点介绍与 Docker 的集成。如需与其他 Google Cloud 服务集成的一般信息,请参阅将 Container Registry 与 Google Cloud 搭配使用

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Container Registry API。

    启用 API

  5. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  6. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  7. 启用 Container Registry API。

    启用 API

选择 shell

如需完成本快速入门,请使用 Cloud Shell 或本地 shell。

Cloud Shell
Cloud Shell 是一种 shell 环境,用于管理托管在 Google Cloud 上的资源。它预安装有 Docker(gcloud 命令行工具),这是 Google Cloud 的主要命令行界面。
本地 shell
如果您更喜欢使用本地 Shell,则必须在您的环境中安装 Docker 和 Cloud SDK。

启动 Cloud Shell

要启动 Cloud Shell,请执行以下步骤:

  1. 转到 Google Cloud Console。

    Google Cloud Console

  2. 点击激活 Cloud Shell 按钮:""

控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

设置本地 shell

如需安装 gcloud 和 Docker,请执行以下步骤:

  1. 安装 Cloud SDK,其中包含 gcloud 命令行工具。如需更新现有安装,请运行命令 gcloud components update

  2. 安装 Docker(如果尚未安装)。

  3. Docker 需要特别访问权限才能与注册表进行交互。 在 Linux 或 Windows 上,将您用于运行 Docker 命令的用户添加到 Docker 安全群组。在 MacOS 上,Docker Desktop 以 root 用户身份在虚拟机上运行,因此无需执行此步骤。

    Linux

    Docker 安全群组称为 docker。 如需添加用户名,请运行以下命令:

    sudo usermod -a -G docker ${USER}
    

    Windows

    Docker 安全群组称为 docker-users。 如需从管理员命令提示符添加用户,请运行以下命令:

    net localgroup docker-users DOMAIN\USERNAME /add
    

    其中

    • DOMAIN 是您的 Windows 网域。
    • USERNAME 是您的用户名。
  4. 退出并重新登录以使群组成员资格变更生效。如果您使用的是虚拟机,则可能需要重启虚拟机才能使成员资格变更生效。

  5. 若要确保 Docker 正在运行,请运行以下 Docker 命令,该命令返回当前时间和日期:

  6. docker run busybox date
    

配置身份验证

想要推送或拉取映像,必须配置 Docker, 指示其先使用 gcloud 命令行工具验证身份,然后再授予用户对 Container Registry 的存取权限。

运行以下命令:

gcloud auth configure-docker

该命令将更新您的 Docker 配置。现在,您可以在 Google Cloud 项目中与 Container Registry 连接以推送和拉取映像。

获取要推送的映像

在本快速入门中,您需要一个名为 hello-app 的示例映像。

  1. 切换到您要保存映像的目录
  2. 运行以下命令以拉取映像的 1.0 版。

    docker pull gcr.io/google-samples/hello-app:1.0
    

将映像添加到 Container Registry

如需向 Container Registry 添加映像,请标记映像,然后将映像推送到注册表。

使用注册表名称标记映像

使用注册表名称标记 Docker 映像,会将 docker push 命令配置为将该映像推送到某个特定位置。在本快速入门中,主机位置为 gcr.io

运行以下命令以将映像标记为 quickstart-image:tag1

docker tag gcr.io/google-samples/hello-app:1.0 gcr.io/PROJECT_ID/quickstart-image:tag1

请替换以下内容:

  • PROJECT-ID 是您的 Google Cloud Console 项目 ID,您需要将此 ID 添加到命令中。如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目
  • gcr.io 是主机名
  • quickstart-image 是 Docker 映像的名称
  • tag1 是要添加到 Docker 映像的标记。如果您没有指定标记,Docker 将应用默认标记 latest

现在您可以将映像推送到 Container Registry 了。

将映像推送到 Container Registry

配置身份验证并标记本地映像后,您可以将映像推送到您创建的代码库。

要推送 Docker 映像,请运行以下命令:

docker push gcr.io/PROJECT_ID/quickstart-image:tag1

其中,PROJECT_ID 是您的 Google Cloud Console 项目 ID。如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目

当您将映像推送到新的主机位置时,该服务会为您的项目创建独有的底层存储分区。您可以通过 Cloud Console 查看由 Container Registry 托管的映像,也可以通过在网络浏览器中输入映像的注册表名称来查看这些映像:http://gcr.io/PROJECT_ID/quickstart-image

从 Container Registry 中拉取映像

要将映像从 Container Registry 拉取到本地机器,请运行以下命令:

docker pull gcr.io/PROJECT_ID/quickstart-image:tag1

PROJECT_ID 替换为您的 Google Cloud Console 项目 ID。如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目

您将看到如下所示的输出:

latest: Pulling from my-project/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/my-project/quickstart-image:tag1

清理

为避免系统因本快速入门中使用的资源向您的 Google Cloud 帐号收取费用,请按照以下步骤操作。

运行以下命令,以将 Docker 映像从 Container Registry 中删除。

gcloud container images delete gcr.io/PROJECT_ID/quickstart-image:tag1 --force-delete-tags

PROJECT_ID 替换为您的 Google Cloud Console 项目 ID。如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目

后续步骤