Container Registry 快速入门
本快速入门介绍了如何配置 Container Registry Docker,然后推送和拉取映像。
Google Cloud 提供了两种用于存储和管理容器映像的服务:
- Artifact Registry(推荐)
用于在私有代码库中存储和管理工件的服务,包括容器映像、Helm 图表和语言软件包。它是 Google Cloud 的推荐容器映像注册表。
试用 Docker 快速入门,熟悉 Artifact Registry。
- Container Registry
支持 Docker Image Manifest V2 和 OCI 映像格式的私有容器映像注册表。并提供部分 Artifact Registry 功能。
如果您当前未使用 Container Registry,请改用 Artifact Registry。 如需比较 Container Registry 和 Artifact Registry 以及从 Container Registry 转换到 Artifact Registry 的信息,请参阅从 Container Registry 转换。
开始前须知
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Registry API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Registry API.
选择 shell
为完成本快速入门,请使用 Cloud Shell 或本地 shell。
- Cloud Shell
- Cloud Shell 是一个 shell 环境,用于管理托管在 Google Cloud 上的资源。其中预装了 Docker 和 Google Cloud CLI(Google Cloud 的主要命令行界面)。
- 本地 shell
- 如果您更喜欢使用本地 shell,则必须在您的环境中安装 Docker 和
gcloud
CLI。
启动 Cloud Shell
如需启动 Cloud Shell,请执行以下步骤:
转到 Google Cloud Console。
在菜单栏中,点击激活 Cloud Shell 按钮:。
控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud
命令。
设置本地 shell
如需安装 gcloud
和 Docker,请执行以下步骤:
安装
gcloud
CLI。如需更新现有安装,请运行gcloud components update
命令。安装 Docker(如果尚未安装)。
Docker 需要以特权方式与注册表进行交互。在 Linux 或 Windows 上,将用于运行 Docker 命令的用户添加到 Docker 安全组。MacOS 上不需要执行此步骤,因为 Docker Desktop 以根用户身份在虚拟机上运行。
Linux
Docker 安全组名为
docker
。如需添加用户名,请运行以下命令:sudo usermod -a -G docker ${USER}
Windows
Docker 安全组名为
docker-users
。要通过管理员命令提示符添加用户,请运行以下命令:net localgroup docker-users DOMAIN\USERNAME /add
其中
- DOMAIN 是您的 Windows 网域。
- USERNAME 是您的用户名。
退出并重新登录以使群组成员资格更改生效。如果您使用的是虚拟机,则可能需要重启虚拟机才能使成员更改生效。
如需确保 Docker 正在运行,请运行以下 Docker 命令以返回当前时间和日期:
docker run busybox date
配置身份验证
在推送或拉取映像之前,您必须将 Docker 配置为使用 Google Cloud CLI 来对发送到 Container Registry 的请求进行身份验证。
运行以下命令:
gcloud auth configure-docker
该命令会更新 Docker 配置。您现在可以连接 Google Cloud 项目中的 Container Registry 以推送和拉取映像。
获取要推送的图片
在本快速入门中,您将推送名为 hello-app
的示例映像。
- 切换到要在其中保存映像的目录
运行以下命令以拉取映像的 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 帐号收取费用,请按照以下步骤操作。
运行以下命令以从 Container Registry 中删除 Docker 映像。
gcloud container images delete gcr.io/PROJECT_ID/quickstart-image:tag1 --force-delete-tags
将 PROJECT_ID 替换为您的 Google Cloud Console 项目 ID。如果您的项目 ID 包含英文冒号 (:
),请参阅网域级项目。