当您使用 API、gcloud
和 docker
命令与代码库进行交互时,Artifact Registry 使用命名约定来识别代码库和映像。
Docker 代码库
Docker 代码库的全名采用以下格式:
LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY
其中:
LOCATION 是代码库的单区域或多区域位置。
PROJECT 是您的 Google Cloud 控制台 项目 ID。 如果您的项目 ID 包含英文冒号 (`:`),请参阅网域级项目。
REPOSITORY 是代码库的名称。
例如,假设一个映像具有以下特征:
- 代码库位置:
us-west1
- 代码库格式:
docker
- 代码库名称:
my-repo
- 项目 ID:
my-project
代码库按如下方式指定:
us-west1-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-west1
- 代码库名称:
my-repo
- 项目 ID:
my-project
- 映像名称:
test
- 标记:
staging
此版本的映像带有 staging 标记,其按如下方式指定:
us-west1-docker.pkg.dev/my-project/my-repo/test:staging
容器映像版本
一个仓库可以包含多个容器映像,这些映像可以 不同版本。如需识别映像的特定版本,您需要 可以指定映像摘要或标记。
- 汇总邮件
- 映像摘要是映像索引或映像清单的自动生成哈希值。每个映像摘要都是映像版本的唯一标识符,无法更改。摘要是映像内容的 sha256 哈希值。
- 标记
图片标记是一种标签,通常是直观易懂的字符串,例如
v1.1
或development
。一个标记只能指向映像的一个版本。在 Artifact Registry 中,您可以配置 Docker 仓库以允许使用可变映像标记或强制使用不可变映像标记。可变:标记仅指向一个映像版本,但其引用的特定摘要可能会发生变化。
一种常见的方法是使用版本标识符标记映像,例如
v1.1
。当 build 使用相同的v1.1
标记将多个版本的映像推送到注册表时,该标记会引用推送到注册表的最后一个版本的摘要。尽管可变的映像标记提供了一种 给版本加标签的便捷方式, 操作者将标记与恶意版本的映像相关联。不可变:在代码库中,标记始终指向同一映像 摘要。如果 Artifact Registry 仓库配置为不可更改的图片标记,则不允许执行以下操作:
- 删除带链接的图片。您仍然可以删除未添加链接的图片。
- 从图片中移除链接。
- 推送的映像使用了仓库中另一个映像版本已使用的标记。
例如,假设一个映像具有以下特征:
- 代码库位置:
us-west1
- 代码库名称:
my-repo
- 项目 ID:
my-project
- 映像名称:
test
- 标记:
staging
- 摘要:
sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
如需使用标记识别映像,请将 :staging
附加到映像名称后面:
us-west1-docker.pkg.dev/my-project/my-repo/test:staging
如需使用摘要识别映像,请将 @
附加到映像名称后面,后跟摘要:
us-west1-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-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name
网址格式的代码库名称
如需在 Google Cloud 控制台中访问代码库或代码库中的工件,请在其全名前面附加 https://
。
例如,如需查看代码库 us-west1-maven.pkg.dev/my-project/my-repo
,请使用
以下网址:
https://us-west1-maven.pkg.dev/my-project/my-repo
如需查看映像 us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
,请执行以下操作:
请使用以下网址:
https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
任何有权访问代码库且经过身份验证的用户都可以使用这些链接。