Image Container

Неизменяемый файл, содержащий исполняемый код, библиотеки и зависимости, необходимые для запуска приложения в изолированной среде.

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

Механизм работы

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

Образы применяются для стандартизации развертывания в CI/CD пайплайнах. Они гарантируют, что приложение будет работать одинаково на локальной машине разработчика и в продакшене. Это исключает конфликты зависимостей, так как вся среда выполнения жестко зафиксирована в манифесте образа.

Для управления образами используются реестры, такие как Docker Hub. Например, команда docker pull nginx:latest загружает официальный образ веб-сервера. Использование минимальных базовых образов, таких как Alpine Linux (около 5 МБ), позволяет сократить время передачи данных и уменьшить поверхность атаки.