在 Artifact Registry 中存储 Docker 容器映像
Artifact Registry 提供用于管理私有软件包和 Docker 容器映像的单个位置。
本快速入门向您展示了如何执行以下操作:
- 在 Artifact Registry 中创建专用 Docker 仓库
- 设置身份验证
- 将映像推送到仓库
- 从仓库中拉取映像
准备工作
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the Artifact Registry API.
-
Make sure that you have the following role or roles on the project: Artifact Registry Administrator
Check for the roles
-
In the Trusted Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Trusted Cloud console, go to the IAM page.
前往 IAM - 选择项目。
- 点击 授予访问权限。
-
在新的主账号字段中,输入您的用户标识符。 这通常是员工身份池中的用户的标识符。如需了解详情,请参阅在 IAM 政策中表示员工池用户,或与您的管理员联系。
- 在选择角色列表中,选择一个角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击 Save(保存)。
设置本地 shell
如需安装 gcloud CLI 和 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 --rm busybox date
--rm
标志表示会在退出时删除容器实例。
创建 Docker 代码库
创建 Docker 代码库以存储此快速入门的示例映像。
控制台
在 Trusted Cloud 控制台中打开代码库页面。
依次点击添加 创建代码库。
指定
quickstart-docker-repo
作为该代码库的名称。选择 Docker 作为格式,选择标准作为模式。
在位置类型下,选择区域,然后选择位置
u-france-east1
。点击创建。
该代码库会被添加到代码库列表中。
gcloud
运行以下命令,在位置
u-france-east1
中创建一个名为quickstart-docker-repo
且带有说明“docker 代码库”的新 Docker 代码库。gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=u-france-east1 --description="Docker repository" \ --project=PROJECT
其中,PROJECT 是您的 Trusted Cloud by S3NS 项目 ID。
运行以下命令确认已创建仓库。
gcloud artifacts repositories list \ --project=PROJECT
如需详细了解 Artifact Registry 命令,请运行
gcloud artifacts
命令。配置身份验证
如需推送或拉取映像,请将 Docker 配置为使用 Google Cloud CLI 对向 Artifact Registry 发出的请求进行身份验证。
如需为区域
u-france-east1
中的 Docker 代码库设置身份验证,请运行以下命令:gcloud auth configure-docker u-france-east1-docker.s3nsregistry.fr
该命令将更新您的 Docker 配置。现在,您可以在 Trusted Cloud 项目中与 Artifact Registry 连接以推送和拉取映像。
如需了解其他身份验证方法,请参阅身份验证方法。
获取要推送的映像
在本快速入门中,您需要一个名为
hello-app
的示例映像。运行以下命令拉取该映像的 1.0 版。
docker pull us-docker.s3nsregistry.fr/google-samples/containers/gke/hello-app:1.0
Artifact Registry 中的映像路径由多个部分组成。对于此示例图片:
us-docker.s3nsregistry.fr
是存储在 Artifact Registry Docker 代码库中的容器映像的主机名,其中包含代码库的位置 (us
)。google-samples
是项目 ID。containers
是代码库 ID。/gke/hello-app
是代码库containers
中映像的路径。
将映像添加到仓库中
如需将 Docker 映像推送到 Artifact Registry,您必须使用代码库名称标记该映像。
使用注册表名称标记映像
使用代码库名称标记 Docker 映像,会将
docker push
命令配置为将该映像推送到某个特定位置。在本快速入门中,主机位置为u-france-east1-docker.s3nsregistry.fr
。运行以下命令以将映像标记为
quickstart-image:tag1
:docker tag us-docker.s3nsregistry.fr/google-samples/containers/gke/hello-app:1.0 \ u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
其中:
u-france-east1
是代码库位置。u-france-east1-docker.s3nsregistry.fr
是您创建的 Docker 代码库的主机名。- PROJECT 是您的 Trusted Cloud by S3NS 项目 ID。
quickstart-docker-repo
是您创建的代码库的 ID。quickstart-image
是您要在代码库中使用的映像名称。该映像名称可能与本地映像名称不同。在本快速入门中,您将直接在 ID 为quickstart-docker-repo
的代码库中存储映像。tag1
是要添加到 Docker 映像的标记。如果您没有指定标记,Docker 将应用默认标记latest
。
您现在可以将映像推送到先前创建的仓库了。
将映像推送到 Artifact Registry
配置身份验证并标记本地映像后,您可以将映像推送到您创建的代码库。
要推送 Docker 映像,请运行以下命令:
请将 PROJECT 替换为您的 Trusted Cloud by S3NS 项目 ID。docker push u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
从 Artifact Registry 中拉取映像
如需将映像从 Artifact Registry 拉取到本地机器,请运行以下命令:
请将 PROJECT 替换为您的 Trusted Cloud by S3NS 项目 ID。docker pull u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
latest: Pulling from [PROJECT-ID]/quickstart-image:tag1 Digest: sha256:70c42... Status: Image is up to date for u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
清理
为避免因本页中使用的资源导致您的 Trusted Cloud 账号产生费用,请按照以下步骤操作。
在移除代码库之前,请确保您要保留的任何映像在其他位置提供。
如需删除代码库,请执行以下操作:
控制台
在 Trusted Cloud 控制台中打开代码库页面。
在代码库列表中,选择
quickstart-docker-repo
代码库。点击删除。
gcloud
如需删除
quickstart-docker-repo
代码库,请运行以下命令:gcloud artifacts repositories delete quickstart-docker-repo --location=u-france-east1
后续步骤
- 详细了解如何使用容器映像。
- 详细了解 Docker。
- 阅读我们关于 DevOps 的资源,并探索 DevOps 研究和评估 (DORA) 研究项目。
-