Что такое шапка "Докер"? - коротко
Шапка Docker — это первая инструкция в Docker‑file, обычно записываемая как FROM
, которая задаёт базовый образ, от которого будет построен контейнер. Она определяет исходную среду и гарантирует совместимость всех последующих слоёв образа.
Что такое шапка "Докер"? - развернуто
Шапка Docker представляет собой метаданные, которые находятся в начале образа и определяют его базовые свойства. Эти данные записываются в виде JSON‑структуры и включаются в каждый слой образа, а также в отдельный файл‑манифест. Благодаря шапке система может правильно идентифицировать, проверять и загружать образ, а также управлять зависимостями между его компонентами.
В шапке фиксируются такие ключевые атрибуты:
- Версия формата – указывает, какой тип манифеста используется (например,
schemaVersion: 2
). Это позволяет инструментам Docker понять, как интерпретировать оставшиеся поля. - Конфигурационный файл – ссылка на JSON‑файл, содержащий параметры запуска контейнера: переменные окружения, команды по умолчанию, точки монтирования и прочее.
- Список слоёв – массив идентификаторов (дешифров) всех слоёв, из которых состоит образ. Каждый слой хранится отдельно в репозитории и может быть переиспользован другими образами.
- Размеры и контрольные суммы – для каждого слоя указывается его размер в байтах и SHA256‑хеш. Эти данные обеспечивают целостность при передаче и позволяют кэшировать уже загруженные части образа.
- Теги и репозитории – информация о том, к какому репозиторию и под каким тегом образ относится. Теги позволяют обращаться к образу по удобным именам вместо длинных хешей.
Шапка также может включать дополнительные поля, такие как:
- Автор – имя или идентификатор пользователя, создавшего образ.
- Дата создания – timestamp, фиксирующий момент сборки.
- Лейблы – произвольные ключ‑значения, используемые для классификации и управления образами в оркестраторах.
Эти метаданные являются фундаментом для всех операций Docker: при docker pull
клиент сначала получает шапку, проверяет её контрольные суммы и только после этого загружает недостающие слои. При запуске контейнера Docker читает конфигурационный файл из шапки, формирует окружение и задаёт команду, которая будет выполнена внутри изолированного процесса.
Таким образом, шапка образа служит центральным источником информации, без которой невозможно корректно хранить, распространять и запускать контейнеры. Все инструменты экосистемы Docker полагаются на её точность и согласованность, что делает её критическим элементом любой Docker‑инфраструктуры.