代码库和映像名称

当您使用 API、gclouddocker 命令与代码库进行交互时,Artifact Registry 使用命名约定来识别代码库和映像。

Docker 代码库

Docker 代码库的全名采用以下格式:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

其中:

  • LOCATION 是代码库的单区域或多区域位置

  • PROJECT 是您的 Google Cloud 控制台项目 ID。如果您的项目 ID 包含英文冒号 (:) 并且您使用的是 Docker 代码库,请参阅网域级项目

  • REPOSITORY 是代码库的名称。

例如,假设一个映像具有以下特征:

  • 代码库位置:us
  • 代码库格式:docker
  • 代码库名称:my-repo
  • 项目 ID:my-project

代码库按如下方式指定:

us-docker.pkg.dev/my-project/my-repo

容器映像名称

容器映像的全名采用以下格式之一:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

其中:

  • LOCATION 是代码库的单区域或多区域位置
  • PROJECT 是您的 Google Cloud 控制台项目 ID。如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目
  • REPOSITORY 是存储了映像的代码库的名称。
  • IMAGE 是代码库中的映像名称。
  • TAG 是您要拉取的映像版本的标记。
  • IMAGE-DIGEST 是映像内容的 sha256 哈希值。在 Google Cloud 控制台中,点击特定映像以查看其元数据。此摘要将被列为映像摘要

    如果您未指定标记或摘要,Artifact Registry 将查找带有默认标记 latest 的映像。如需查看版本,请参阅容器映像版本

例如,假设一个映像具有以下特征:

  • 代码库位置:us
  • 代码库名称:my-repo
  • 项目 ID:my-project
  • 映像名称:test
  • 标记:staging

此版本的映像带有 staging 标记,其按如下方式指定:

us-docker.pkg.dev/my-project/my-repo/test:staging

容器映像版本

一个代码库可以包含许多容器映像,而这些映像可以具有不同的版本。如需标识映像的特定版本,您可以指定映像摘要或标记。

汇总邮件
映像摘要是自动生成的映像索引或映像清单的哈希值。每个映像摘要都是某个映像版本的唯一标识符,无法更改。摘要是映像内容的 sha256 哈希值。
标记

图片标记是一种标签,通常是人类可读的字符串,例如 v1.1development。一个标记只能指向一张图片的一个版本。在 Artifact Registry 中,您可以配置 Docker 代码库以允许可变映像标记或强制执行不可变映像标记(预览版)。

  • Mutable:标记仅指向映像的一个版本,但其引用的特定摘要可能会发生变化。

    一种常见方法是在构建时使用版本标识符(例如 v1.1)标记映像。当构建将映像的多个版本推送到具有相同 v1.1 标记的注册表时,该标记会引用推送到注册表的上一个版本的摘要。虽然可变的图片标记提供了一种为版本加标签的便捷方式,但不法分子也可能会操纵这些标记,将标记与图片的恶意版本相关联。

  • 不可变:在代码库中,标记始终指向同一映像摘要。如果为 Artifact Registry 代码库配置了不可变映像标记,则不允许执行以下操作:

    • 删除带标签的映像。但仍允许删除未标记的图片。
    • 从映像中移除标记。
    • 推送带有代码库中其他映像版本使用的标记的映像。

例如,假设一个映像具有以下特征:

  • 代码库位置:us
  • 代码库名称:my-repo
  • 项目 ID:my-project
  • 映像名称:test
  • 标记:staging
  • 摘要:sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

如需使用标记标识映像,请将 :staging 附加到映像名称:

us-docker.pkg.dev/my-project/my-repo/test:staging

如需使用摘要进行标识,请将 @ 附加到映像名称,后跟摘要:

us-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目

在控制台的映像屏幕上,标记列会列出映像的标记。点击映像的版本以查看元数据,包括映像摘要

如需详细了解标记,请参阅标记映像

网域级项目

如果您的项目被限定在您的网域范围内,那么项目 ID 应包含相应域名和一个英文冒号 (:)。鉴于 Docker 对英文冒号的处理方式,当您在 Artifact Registry 中指定映像摘要时,必须用正斜杠替换英文冒号字符。请使用以下格式来标识这类项目中的映像:

LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

例如,ID 为 example.com:my-project 的项目可能会有下列映像:

us-docker.pkg.dev/example.com/my-project/my-repo/image-name

以网址形式表示的代码库名称

如需在 Google Cloud 控制台中访问代码库中的代码库或工件,请在其全名前面加上 https://

例如,如需查看代码库 us-maven.pkg.dev/my-project/my-repo,请使用以下网址:

https://us-maven.pkg.dev/my-project/my-repo

如需查看图片 us-docker.pkg.dev/example.com/my-project/my-repo/my-image,请使用以下网址:

https://us-docker.pkg.dev/example.com/my-project/my-repo/my-image

有权访问代码库的任何经过身份验证的用户都可以使用这些链接。