当您使用 API、gcloud
和 docker
命令与代码库进行交互时,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.1
或development
。一个标记只能指向一张图片的一个版本。在 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
有权访问代码库的任何经过身份验证的用户都可以使用这些链接。