Что такое шапка "Докер"?

Что такое шапка "Докер"? - коротко

Шапка Docker — это первая инструкция в Docker‑file, обычно записываемая как FROM, которая задаёт базовый образ, от которого будет построен контейнер. Она определяет исходную среду и гарантирует совместимость всех последующих слоёв образа.

Что такое шапка "Докер"? - развернуто

Шапка Docker представляет собой метаданные, которые находятся в начале образа и определяют его базовые свойства. Эти данные записываются в виде JSON‑структуры и включаются в каждый слой образа, а также в отдельный файл‑манифест. Благодаря шапке система может правильно идентифицировать, проверять и загружать образ, а также управлять зависимостями между его компонентами.

В шапке фиксируются такие ключевые атрибуты:

  • Версия формата – указывает, какой тип манифеста используется (например, schemaVersion: 2). Это позволяет инструментам Docker понять, как интерпретировать оставшиеся поля.
  • Конфигурационный файл – ссылка на JSON‑файл, содержащий параметры запуска контейнера: переменные окружения, команды по умолчанию, точки монтирования и прочее.
  • Список слоёв – массив идентификаторов (дешифров) всех слоёв, из которых состоит образ. Каждый слой хранится отдельно в репозитории и может быть переиспользован другими образами.
  • Размеры и контрольные суммы – для каждого слоя указывается его размер в байтах и SHA256‑хеш. Эти данные обеспечивают целостность при передаче и позволяют кэшировать уже загруженные части образа.
  • Теги и репозитории – информация о том, к какому репозиторию и под каким тегом образ относится. Теги позволяют обращаться к образу по удобным именам вместо длинных хешей.

Шапка также может включать дополнительные поля, такие как:

  • Автор – имя или идентификатор пользователя, создавшего образ.
  • Дата создания – timestamp, фиксирующий момент сборки.
  • Лейблы – произвольные ключ‑значения, используемые для классификации и управления образами в оркестраторах.

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

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