Терминология Docker
Совет
Это содержимое является фрагментом из электронной книги, архитектуры микрослужб .NET для контейнерных приложений .NET, доступных в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно читать в автономном режиме.
В этом разделе приводятся термины и определения, необходимые при работе с инструментом Docker. С развернутыми определениями можно ознакомиться в глоссарии инструмента Docker.
Образ контейнера — пакет со всеми зависимостями и сведениями, необходимыми для создания контейнера. Образ включает в себя все зависимости (например, платформы), а также конфигурацию развертывания и выполнения для среды выполнения контейнера. Как правило, образ создается на основе нескольких базовых образов, наслоенных друг на друга в файловой системе контейнера. После создания образ остается неизменным.
Dockerfile: текстовый файл, содержащий инструкции по созданию образа Docker. Он похож на пакетный сценарий, где первая строка указывает базовый образ, с которого начинается работа, а следующие инструкции устанавливают необходимые программы, копируют файлы и т. п. для создания необходимой рабочей среды.
Сборка — действие по созданию образа контейнера на основе сведений и контекста, предоставленных файлом Dockerfile, а также дополнительных файлов в папке, где создается образ. Сборка образов выполняется с помощью следующей команды Docker:
docker build
Контейнер — экземпляр образа Docker. Контейнер отвечает за выполнение одного приложения, процесса или службы. Он состоит из содержимого образа Docker, среды выполнения и стандартного набора инструкций. При масштабировании службы вы создаете несколько экземпляров контейнера из одного образа. Или пакетное задание может создать несколько контейнеров из одного образа, передавая разные параметры каждому экземпляру.
Тома. Предложите файловую систему с возможностью записи, которую может использовать этот контейнер. Поскольку образы доступны только для чтения, а большинству программ требуется возможность записи в файловую систему, тома добавляют слой с поддержкой записи поверх образа контейнера, который программы смогут использовать как файловую систему с возможностью записи. Программа не знает, что она обращается к многоуровневой файловой системе. Для нее это обычный вызов файловой системы. Тома размещаются в системе узла под управлением Docker.
Тег — метка для образа, которая позволяет различать разные образы или версии одного образа (в зависимости от номера версии или целевой среды).
Многоэтапная сборка — этот компонент входит в Docker, начиная с версии 17.05, и позволяет сократить итоговый размер образов. Например, большой базовый образ, содержащий пакет SDK, можно использовать для компиляции и публикации, а затем можно использовать небольшой базовый образ среды выполнения для размещения приложения.
Репозиторий — коллекция связанных образов Docker, помеченная тегом, указывающим на версию образа. Некоторые репозитории содержат несколько вариантов определенного образа, например изображения, содержащего пакеты SDK (более тяжелые), изображение, содержащее только среды выполнения (светлее) и т. д. Эти варианты можно пометить тегами. Один репозиторий может содержать варианты платформ, например образ Linux и образ Windows.
Реестр — служба, предоставляющая доступ к репозиториям. Реестр по умолчанию для большинства общедоступных образов — Центр Docker (принадлежащий Docker как организации). Реестр обычно содержит репозитории нескольких команд. Компании часто используют частные реестры для хранения своих образов и управления ими. Еще один пример — реестр контейнеров Azure.
Многоархивное изображение: для мультиплатформенного (или мультиплатформенного) — это функция Docker, которая упрощает выбор соответствующего образа в соответствии с платформой, в которой работает Docker. Например, когда Dockerfile запрашивает базовый образ FROM mcr.microsoft.com/dotnet/sdk:8.0 из реестра, он фактически получает 8.0-nanoserver-ltsc2022, 8.0-nanoserver-1809 или 8.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.
Orchestrator: инструмент, упрощающий управление кластерами и узлами Docker. С помощью оркестраторов можно управлять образами, контейнерами и узлами через интерфейс командной строки (CLI) или графический интерфейс. Вы можете управлять соединениями контейнеров, конфигурациями, балансировкой нагрузки, обнаружением служб, высоким уровнем доступности, конфигурацией узлов Docker и многим другим. Оркестратор используется для выполнения, распределения, масштабирования и восстановления рабочих нагрузок в коллекции узлов. В качестве оркестраторов обычно используются те же продукты, которые обеспечивают кластерную инфраструктуру, например Kubernetes и Azure Service Fabric (на рынке доступны и другие предложения).