Сведения о реестрах, репозиториях и образахAbout registries, repositories, and images

В этой статье приводятся основные понятия реестра контейнеров, репозиториев, образов контейнеров и связанных артефактов.This article introduces the key concepts of container registries, repositories, and container images and related artifacts.

РеестрRegistry

Реестр контейнера — служба, которая хранит и распределяет образы контейнеров.A container registry is a service that stores and distributes container images. DOCKER Hub — это общедоступный реестр контейнеров, который поддерживает сообщество с открытым исходным кодом и служит общим каталогом образов.Docker Hub is a public container registry that supports the open source community and serves as a general catalog of images. Реестр контейнеров Azure предоставляет пользователям возможность прямого управления своими образами с помощью встроенной проверки подлинности, георепликации , поддерживающей глобальное распределение и надежность, для развертываний в сети, настройки виртуальной сети и брандмауэра, блокировки тегови многих других улучшенных функций.Azure Container Registry provides users with direct control of their images, with integrated authentication, geo-replication supporting global distribution and reliability for network-close deployments, virtual network and firewall configuration, tag locking, and many other enhanced features.

В дополнение к образам контейнеров DOCKER, реестр контейнеров Azure поддерживает связанные артефакты содержимого , включая форматы образов для инициативы Open Container (OCI).In addition to Docker container images, Azure Container Registry supports related content artifacts including Open Container Initiative (OCI) image formats.

Сведения об адресных элементах артефактаContent addressable elements of an artifact

Адрес артефакта в реестре контейнеров Azure включает следующие элементы.The address of an artifact in an Azure container registry includes the following elements.

[loginUrl]/[namespace]/[artifact:][tag]
  • логинурл — полное имя узла реестра.loginUrl - The fully qualified name of the registry host. Узел реестра в реестре контейнеров Azure имеет формат myregistry. azurecr.IO (все строчные буквы).The registry host in an Azure container registry is in the format myregistry.azurecr.io (all lowercase). При использовании DOCKER или других клиентских средств для извлечения артефактов в реестр контейнеров Azure необходимо указать Логинурл.You must specify the loginUrl when using Docker or other client tools to pull or push artifacts to an Azure container registry.
  • пространство имен — логическое группирование связанных изображений или артефактов, разделенных косой чертой, например для Рабочей группы или приложенияnamespace - Slash-delimited logical grouping of related images or artifacts - for example, for a workgroup or app
  • артефакт — имя репозитория для конкретного образа или артефакта.artifact - The name of a repository for a particular image or artifact
  • Tag — конкретная версия образа или артефакта, хранящихся в репозиторииtag - A specific version of an image or artifact stored in a repository

Например, полное имя образа в реестре контейнеров Azure может выглядеть следующим образом:For example, the full name of an image in an Azure container registry might look like:

myregistry.azurecr.io/marketing/campaign10-18/email-sender:v2

Дополнительные сведения об этих элементах см. в следующих разделах.See the following sections for details about these elements.

Имя репозиторияRepository name

Реестры контейнеров управляют репозиториями, коллекциями образов контейнеров или другими артефактами с тем же именем, но разными тегами.Container registries manage repositories, collections of container images or other artifacts with the same name, but different tags. Например, следующие три образа находятся в репозитории acr-helloworld.For example, the following three images are in the "acr-helloworld" repository:

acr-helloworld:latest
acr-helloworld:v1
acr-helloworld:v2

Имена репозиториев также могут включать пространство имен.Repository names can also include namespaces. Пространства имен позволяют группировать изображения с помощью имен репозитория, разделенных косой чертой, например:Namespaces allow you to group images using forward slash-delimited repository names, for example:

marketing/campaign10-18/web:v2
marketing/campaign10-18/api:v3
marketing/campaign10-18/email-sender:v2
product-returns/web-submission:20180604
product-returns/legacy-integrator:20180715

Образ —Image

Образ контейнера или другой артефакт в реестре связан с одним или несколькими тегами, имеет один или несколько слоев и определяется манифестом.A container image or other artifact within a registry is associated with one or more tags, has one or more layers, and is identified by a manifest. Понимание того, как эти компоненты связаны друг с другом, может помочь эффективно управлять реестром.Understanding how these components relate to each other can help you manage your registry effectively.

ТегTag

Тег для изображения или другого артефакта указывает его версию.The tag for an image or other artifact specifies its version. Одному артефакту в репозитории может быть назначен один или несколько тегов, а также может быть "без тегов".A single artifact within a repository can be assigned one or many tags, and may also be "untagged." То есть можно удалить все теги из изображения, в то время как данные изображения (его слои) остаются в реестре.That is, you can delete all tags from an image, while the image's data (its layers) remain in the registry.

Репозиторий (или репозиторий и пространство имен) вместе с тегом определяют имя образа.The repository (or repository and namespace) plus a tag defines an image's name. Образ можно отправлять и получать. Для этого в операции передачи или получения необходимо указать его имя.You can push and pull an image by specifying its name in the push or pull operation.

Создание тегов для образов контейнеров осуществляется с помощью сценариев для разработки или развертывания.How you tag container images is guided by your scenarios to develop or deploy them. Например, стабильными тегами рекомендуется поддерживать базовые образы и уникальные теги для развертывания образов.For example, stable tags are recommended for maintaining your base images, and unique tags for deploying images. Дополнительные сведения см. в разделе рекомендации по отстановке тегов и управление версиями для образов контейнеров.For more information, see Recommendations for tagging and versioning container images.

СлойLayer

Образы контейнеров состоят из одного или нескольких слоев, каждый из которых соответствует строке в Dockerfile, определяющей изображение.Container images are made up of one or more layers, each corresponding to a line in the Dockerfile that defines the image. Образы в реестре используют слои совместно, что позволяет увеличить эффективность хранилища.Images in a registry share common layers, increasing storage efficiency. Например, несколько образов, которые находятся в разных репозиториях, могут совместно использовать базовый слой Alpine Linux, но только одна копия из этого слоя может хранится в реестре.For example, several images in different repositories might share the same Alpine Linux base layer, but only one copy of that layer is stored in the registry.

Совместное использование слоя также оптимизирует распределение слоев для узлов с несколькими образами, совместно использующих общие слои.Layer sharing also optimizes layer distribution to nodes with multiple images sharing common layers. Например, если образ уже находится в узле, который включает в себя уровень Alpine Linux в качестве основы, последующее притяжение другого образа, ссылающегося на один и тот же слой, не переносит его слой на узел.For example, if an image already on a node includes the Alpine Linux layer as its base, the subsequent pull of a different image referencing the same layer doesn't transfer the layer to the node. Вместо этого он ссылается на слой, который уже существует на узле.Instead, it references the layer already existing on the node.

Чтобы обеспечить безопасную изоляцию и защиту от потенциальных манипуляций с слоями, уровни не являются общими для реестров.To provide secure isolation and protection from potential layer manipulation, layers are not shared across registries.

ManifestManifest

Каждый образ контейнера или артефакт, отправленный в реестр контейнеров, связан с манифестом.Each container image or artifact pushed to a container registry is associated with a manifest. Манифест создается реестром во время отправки образа, уникально идентифицирует образ и указывает его слой.The manifest, generated by the registry when the image is pushed, uniquely identifies the image and specifies its layers. Вы можете составить список манифестов для репозитория с помощью команды Azure CLI AZ контроля учетных записей, отображающей манифесты:You can list the manifests for a repository with the Azure CLI command az acr repository show-manifests:

az acr repository show-manifests --name <acrName> --repository <repositoryName>

Например, перечислите манифесты для репозитория "запись контроля доступа".For example, list the manifests for the "acr-helloworld" repository:

$ az acr repository show-manifests --name myregistry --repository acr-helloworld
[
  {
    "digest": "sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108",
    "tags": [
      "latest",
      "v3"
    ],
    "timestamp": "2018-07-12T15:52:00.2075864Z"
  },
  {
    "digest": "sha256:3168a21b98836dda7eb7a846b3d735286e09a32b0aa2401773da518e7eba3b57",
    "tags": [
      "v2"
    ],
    "timestamp": "2018-07-12T15:50:53.5372468Z"
  },
  {
    "digest": "sha256:7ca0e0ae50c95155dbb0e380f37d7471e98d2232ed9e31eece9f9fb9078f2728",
    "tags": [
      "v1"
    ],
    "timestamp": "2018-07-11T21:38:35.9170967Z"
  }
]

Дайджест манифестаManifest digest

Манифесты идентифицируются с помощью уникального хэша SHA-256 или дайджеста манифеста.Manifests are identified by a unique SHA-256 hash, or manifest digest. Каждое изображение или артефакт — указывает, определяется ли его дайджест-тегом или нет.Each image or artifact--whether tagged or not--is identified by its digest. Значение дайджеста уникально, даже если данные слоя образа идентичны данным другого образа.The digest value is unique even if the image's layer data is identical to that of another image. Данный механизм позволяет многократно отправлять образы с идентичными тегами в реестр.This mechanism is what allows you to repeatedly push identically tagged images to a registry. Например, можно многократно отправлять myimage:latest в реестр, при этом не получая сообщений об ошибке. Это происходит из за того, что каждый образ идентифицируется по уникальному дайджесту.For example, you can repeatedly push myimage:latest to your registry without error because each image is identified by its unique digest.

Чтобы извлечь образ из реестра, необходимо указать его дайджест в операции передачи.You can pull an image from a registry by specifying its digest in the pull operation. Некоторые системы можно настроить на извлечения с помощью дайджеста, так как он гарантирует, что будет извлечена запрашиваемая версия образа. Операция будет выполнена, даже если образы, которые были идентично помечены, впоследствии будут перенесены в реестр.Some systems may be configured to pull by digest because it guarantees the image version being pulled, even if an identically tagged image is subsequently pushed to the registry.

Например, можно извлечь изображение из репозитория "запись контроля доступа" с помощью дайджеста манифеста:For example, pull an image from the "acr-helloworld" repository by manifest digest:

$ docker pull myregistry.azurecr.io/acr-helloworld@sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108

Важно!

Если многократно отправлять измененные образы с идентичными тегами, можно создать потерянные образы, которые остались без тегов, но все еще потребляют пространство реестра.If you repeatedly push modified images with identical tags, you might create orphaned images--images that are untagged, but still consume space in your registry. Образы без тегов не отображаются в Azure CLI или на портале Azure при просмотре списка или образов по тегу.Untagged images are not shown in the Azure CLI or in the Azure portal when you list or view images by tag. Тем не менее их слои по-прежнему существуют и занимают место в реестре.However, their layers still exist and consume space in your registry. Удаление изображения без тегов освобождает место в реестре, когда манифест является единственным или последним, указывая на определенный слой.Deleting an untagged image frees registry space when the manifest is the only one, or the last one, pointing to a particular layer. Сведения об освобождении пространства, используемого изображениями без тегов, см. в статье Удаление образов контейнеров в реестре контейнеров Azure.For information about freeing space used by untagged images, see Delete container images in Azure Container Registry.

Дополнительная информацияNext steps

Дополнительные сведения о хранении образов и поддерживаемых форматах содержимого в реестре контейнеров Azure.Learn more about image storage and supported content formats in Azure Container Registry.