容器概念

本文档介绍了与容器相关的关键概念,包括 代码库和工件关于这些模式的一些基本信息 适用于 Artifact Registry 和 Container Registry 的概念 也包含在内。

注册表

注册表存储和分发容器映像和工件 代码库中的名称。一个注册表可以包含单个代码库 或多个代码库,可以是公共的,也可以是私有的

Docker Hub 和 Artifact Registry 等注册表服务 创建公开或私有代码库的选项拉取公共映像时 了解潜在的安全问题非常重要。了解 依赖项管理,详细了解 来监控并减少依赖项占用空间

注册表被整理成多个仓库,用于存储各个容器的 图片。借助 Artifact Registry,您可以在单个 项目,并将特定的 单区域或多区域 每个仓库相关代码库可以按标签分组。

代码库

名称相同但标记不同的图片和工件会整理到 代码库如果在将映像推送到代码库时未指定标记, 该映像会使用 latest 标记进行标记。如果推送其他映像时 指定标记时,latest 标记会从原始映像移至较新的映像 图片,而不添加第一张图片。我们建议为版本添加一个标记 不是 latest

“仓库”一词并非总是一贯使用,在 Artifact Registry 中 更有用的方法是使用映像路径的各个部分来标识项目, <ph type="x-smartling-placeholder"></ph> 单区域或多区域 、映像名称以及 代码清单摘要 以确定正确的版本

例如:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 是代码库的位置
  • docker.pkg.dev 是 Docker 代码库的主机名。
  • PROJECT 是您的 Google Cloud 项目 ID 创建的命名空间。
  • quickstart-docker-repo 是项目下的命名空间 图片。在 Artifact Registry 中,路径的这一部分称为 存储库
  • quickstart-imagequickstart-image 的所有版本的代码库 通常称为“映像”
  • tag1 是指定映像版本的标记。

图片

工件和映像都可以存储在 Artifact Registry 中。一个 工件可以是任何:文本文件、Docker 映像或 Helm 图表,而 通常是指容器映像容器映像是 包含可在任何环境中运行的所有必要元素的软件。已读 如需了解详情,请参阅什么是容器

将图片推送或上传到代码库,然后拉取或下载图片 从代码库中获取为了指定正确的映像和版本, 必须指定注册表和工件。

例如:

docker pull us-west1-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

  • us-west1-docker.pkg.dev 是注册表
  • /google-samples/containers/gke/ 是命名空间和子命名空间。在 Artifact Registry google-samples 是 Google Cloud 项目, containers 称为 Artifact Registry 代码库
  • hello-app 是工件名称
  • :1.0 是用于指定要拉取的工件版本的标记

存储在存储库中的容器映像是使用 图层。不同的图片可以使用某些相同的图层。层定义 以不同的方式使用,具体取决于图片类型,例如,每个说明 与 Docker 映像中的层相对应在注册表中 具有通用层的映像会共享这些层,从而提高存储效率。 出于安全考虑,系统未在不同的注册表之间共享层。

删除容器映像时,这些层不会立即删除。图层 未被注册表中任何映像引用的数据每天被删除。

标记

用户在将映像推送或拉取到代码库时添加标签 映像版本。一个映像可以有一个或多个标记,也可以完全没有标记。 如果您使用相同标记推送映像两次,则该标记将从 并移动到第二张图片,使第一张图片不带标记。通过 未标记的映像仍可通过其清单摘要访问。

latest 标记是在没有标记的情况下推送映像时附加的特殊标记。

例如:

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

将映像推送到 hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

拉取映像 hello-app:latest

请务必注意,将映像推送到带有标记的代码库时 latest 除外,则系统不会添加 latest 标记,因此 latest 映像,以显示在最新变更后面。我们建议 为版本使用 latest 以外的标记。 如需详细了解如何标记 图片读取如何正确标记图片

清单

图片清单可唯一标识并指定每张图片中的层。 清单由唯一的 SHA-256 哈希(称为清单摘要)标识。 清单摘要比标记更可靠和安全,因为 同一映像的不同版本可能会推送到同一标记, 不带标记,而每个映像都由其清单摘要唯一指定。

如果您使用工具扫描或分析图片, 对于扫描的映像有效为了确保您部署的映像 则不能依赖该标记,因为该标记引用的映像 更改。

如需详细了解 Artifact Registry 专用的标记和清单, 请阅读管理映像使用容器映像

后续步骤