Ответ
После выполнения команды docker build
создается Docker-образ (Image).
Что такое Docker-образ?
Docker-образ — это неизменяемый (read-only) шаблон, который содержит все необходимое для запуска приложения:
- Код приложения или скомпилированный бинарный файл.
- Необходимые зависимости (библиотеки, утилиты).
- Конфигурационные файлы.
- Метаданные, описывающие, как запустить контейнер (например, рабочая директория, переменные окружения, команда для запуска).
Структурно образ состоит из набора упорядоченных слоев (layers). Каждый слой представляет собой инструкцию из Dockerfile
(например, COPY
, RUN
, ADD
) и содержит только изменения файловой системы относительно предыдущего слоя. Эта слоистая структура делает образы эффективными для хранения и передачи.
Что можно делать с образом после сборки?
-
Локальное хранение и просмотр:
- Образ сохраняется в локальном хранилище Docker-демона.
- Вы можете просмотреть список всех локальных образов командой
docker images
.
-
Запуск контейнера:
- Это основное предназначение образа. Команда
docker run my-image:latest
создает контейнер из образа. - Контейнер — это запущенный экземпляр образа. Он добавляет поверх неизменяемых слоев образа новый, записываемый (writable) слой, где и происходят все изменения во время работы приложения.
# Запустить контейнер в фоновом режиме и пробросить порт 8080 docker run -d -p 8080:80 my-image:latest
- Это основное предназначение образа. Команда
-
Отправка в Registry:
- Чтобы поделиться образом с командой или развернуть его на сервере, его нужно отправить в централизованное хранилище (Registry), такое как Docker Hub, GitLab Container Registry или AWS ECR.
- Это делается командой
docker push my-registry.com/my-image:latest
.
-
Тегирование:
- Одному и тому же образу можно присвоить несколько тегов для удобства версионирования.
docker tag my-image:latest my-image:1.2.0
-
Проверка и анализ:
- С помощью
docker inspect my-image
можно получить подробную информацию об образе в формате JSON, включая все его слои, метаданные и конфигурацию. - Образ можно сканировать на наличие уязвимостей с помощью специализированных инструментов (например, Trivy, Snyk).
- С помощью