Знакомство с терминологией Docker

Совет

Это содержимое является отрывком из электронной книги, жизненного цикла контейнерных приложений Docker с помощью платформы и средств Майкрософт, доступных в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.

Containerized Docker Application Lifecycle with Microsoft Platform and Tools eBook cover thumbnail.

В этом разделе приводятся термины и определения, необходимые при работе с инструментом Docker. С развернутыми определениями можно ознакомиться в глоссарии инструмента Docker.

Образ контейнера: пакет со всеми зависимостями и сведениями, необходимыми для создания контейнера. Образ включает в себя все зависимости (например, платформы), а также конфигурацию развертывания и выполнения для среды выполнения контейнера. Как правило, образ создается на основе нескольких базовых образов, наслоенных друг на друга в файловой системе контейнера. После создания образ остается неизменным.

Dockerfile: текстовый файл, содержащий инструкции по сборке образа Docker. Он похож на пакетный сценарий, где первая строка указывает базовый образ, с которого начинается работа, а следующие инструкции устанавливают необходимые программы, копируют файлы и т. п. для создания необходимой рабочей среды.

Сборка: действие по созданию образа контейнера на основе сведений и контекста, предоставленных файлом Dockerfile, а также дополнительных файлов в папке, где создается образ. Сборка образов выполняется с помощью следующей команды Docker:

docker build

Контейнер: экземпляр образа Docker. Контейнер отвечает за выполнение одного приложения, процесса или службы. Он состоит из содержимого образа Docker, среды выполнения и стандартного набора инструкций. При масштабировании службы вы создаете несколько экземпляров контейнера из одного образа. Или пакетное задание может создать несколько контейнеров из одного образа, передавая разные параметры каждому экземпляру.

Тома: предложите файловую систему с возможностью записи, которую может использовать этот контейнер. Поскольку образы доступны только для чтения, а большинству программ требуется возможность записи в файловую систему, тома добавляют слой с поддержкой записи поверх образа контейнера, который программы смогут использовать как файловую систему с возможностью записи. Программа не знает, что она обращается к многоуровневой файловой системе. Для нее это обычный вызов файловой системы. Тома размещаются в системе узла под управлением Docker.

Тег: метка для образа, которая позволяет различать разные образы или версии одного образа (в зависимости от номера версии или целевой среды).

Многоэтапная сборка: этот компонент входит в Docker, начиная с версии 17.05, и позволяет сократить итоговый размер образов. Например, большой базовый образ, содержащий пакет SDK, можно использовать для компиляции и публикации, а затем можно использовать небольшой базовый образ среды выполнения для размещения приложения.

Репозиторий: коллекция связанных образов Docker, помеченная тегом, указывающим на версию образа. Некоторые репозитории содержат несколько вариантов одного образа, например образ с пакетом средств разработки (больший объем), образ только со средой выполнения (меньший объем) и т. д. Эти варианты можно пометить тегами. Один репозиторий может содержать варианты платформ, например образ Linux и образ Windows.

Реестр: служба, предоставляющая доступ к репозиториям. Реестр по умолчанию для большинства общедоступных образов — Центр Docker (принадлежащий Docker как организации). Реестр обычно содержит репозитории нескольких команд. Компании часто используют частные реестры для хранения своих образов и управления ими. Еще один пример — реестр контейнеров Azure.

Мультиархитектурный образ: Для нескольких архитектур это функция, которая упрощает выбор соответствующего образа в соответствии с платформой, в которой работает Docker. Например, когда Dockerfile запрашивает базовый образ FROM mcr.microsoft.com/dotnet/sdk:6.0 из реестра, фактически возвращается 6.0-nanoserver-20H2, 6.0-nanoserver-1809 или 6.0-bullseye-slim (в зависимости от ОС и версии среды, в которой работает Docker).

Центр Docker: общедоступный реестр для загрузки образов и работы с ними. Центр Docker обеспечивает размещение образов Docker и интеграцию с GitHub и Bitbucket, предоставляет общедоступные или частные реестры, триггеры сборки и веб-перехватчики.

Реестр контейнеров Azure: общедоступный ресурс для работы с образами Docker и их компонентами в Azure. Он предоставляет реестр, близкий к вашим развертываниям в Azure, так что вы можете контролировать доступ и использовать группы и разрешения в Azure Active Directory.

Доверенный реестр Docker (DTR) : служба реестра Docker (из Docker), которую можно установить локально, чтобы она находилась в центре данных и сети организации. Его удобно использовать для частных образов, которыми необходимо управлять внутри предприятия. Доверенный реестр Docker входит в Центр данных Docker.

Docker Desktop: инструменты разработки в среде Windows и macOS для локальной сборки, выполнения и тестирования контейнеров. Docker Desktop для Windows предоставляет среды разработки для контейнеров Linux и Windows. Узел Linux Docker на Windows базируется на виртуальной машине Hyper-V. Узел для контейнеров Windows базируется непосредственно на Windows. Docker Desktop для Mac основан на платформе Apple Hypervisor и гипервизоре xhyve, который предоставляет виртуальную машину узла Docker для Linux в macOS. Docker Desktop для Windows и Mac заменяет решение Docker Toolbox, которое было основано на Oracle VirtualBox.

Compose: программа командной строки и формат файлов YAML с метаданными для определения и выполнения многоконтейнерных приложений. Вы определяете одно приложение на основе нескольких изображений с одним или несколькими YML-файлами , которые могут переопределять значения в зависимости от среды. Создав определения, вы можете развернуть все многоконтейнерное приложение с помощью одной команды (docker-compose up), которая создает один контейнер на образ на узле Docker.

Кластер: коллекция узлов Docker, представленная в виде единого виртуального узла Docker, чтобы можно было масштабировать приложение в нескольких экземплярах служб, распределенных по нескольким узлам кластера. Кластеры Docker можно создавать с помощью Kubernetes, Azure Service Fabric, Docker Swarm и (или) Mesosphere DC/OS.

Оркестратор: инструмент, упрощающий управление кластерами и узлами Docker. С помощью оркестраторов можно управлять образами, контейнерами и узлами через интерфейс командной строки (CLI) или графический интерфейс. Вы можете управлять соединениями контейнеров, конфигурациями, балансировкой нагрузки, обнаружением служб, высоким уровнем доступности, конфигурацией узлов Docker и многим другим. Оркестратор используется для выполнения, распределения, масштабирования и восстановления рабочих нагрузок в коллекции узлов. В качестве оркестраторов обычно используются те же продукты, которые обеспечивают кластерную инфраструктуру, например Kubernetes и Azure Service Fabric (на рынке доступны и другие предложения).