Какие основные понятия существуют в Docker?
Docker оперирует набором ключевых абстракций, каждая из которых решает свою задачу.
-
Образ (Image) — неизменяемый шаблон, содержащий файловую систему и метаданные для создания контейнера. Образ состоит из набора слоёв, каждый из которых представляет собой результат выполнения одной инструкции Dockerfile. Образы хранятся в реестрах и могут быть версионированы с помощью тегов (например,
openjdk:17-slim). -
Контейнер (Container) — запущенный экземпляр образа. Контейнер добавляет поверх слоёв образа тонкий записываемый слой (writable layer), в котором хранятся все изменения, сделанные во время работы. Контейнер можно запустить, остановить, удалить, а также подключиться к нему.
-
Реестр (Registry) — хранилище образов Docker. Реестр может быть публичным или приватным. Примеры: Docker Hub, GitHub Container Registry, Amazon ECR, Google Container Registry, GitLab Container Registry.
-
Docker Hub — самый популярный публичный реестр Docker-образов. Содержит официальные образы (OpenJDK, PostgreSQL, Nginx и др.) и пользовательские образы. Бесплатный аккаунт позволяет хранить один приватный репозиторий.
-
Тег (Tag) — метка версии образа. Например,
eclipse-temurin:17-jre-alpine— образ Eclipse Temurin JRE 17 на базе Alpine Linux. Тегlatestиспользуется по умолчанию, если тег не указан явно. -
Том (Volume) — механизм для сохранения данных, созданных контейнером, вне его жизненного цикла. Данные в томах не удаляются при удалении контейнера.
На собеседовании: перечислите минимум четыре понятия: образ, контейнер, реестр, том. Покажите связь между ними: из образа создаётся контейнер, образы хранятся в реестре, данные контейнера сохраняются в томах.