Какие основные сущности существуют в Docker?

«Какие основные сущности существуют в Docker?» — вопрос из категории Docker, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Docker есть несколько ключевых сущностей, которые образуют его экосистему:

  • Dockerfile — текстовый файл с инструкциями для сборки образа.
  • Образ (Image) — неизменяемый шаблон, содержащий приложение и его зависимости (например, nginx:alpine).
  • Контейнер (Container) — запущенный экземпляр образа. Это изолированный процесс.
  • Том (Volume) — механизм для сохранения данных, независимый от жизненного цикла контейнера.
  • Сеть (Network) — виртуальная сеть, изолирующая контейнеры и управляющая их взаимодействием.
  • Docker Compose — инструмент для определения и запуска многоконтейнерных приложений с помощью файла docker-compose.yml.

Пример простого Dockerfile:

FROM alpine:latest
RUN apk add --no-cache nginx
COPY index.html /var/www/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Почему это важно: Понимание этих сущностей — основа для работы с Docker. Образы обеспечивают воспроизводимость, тома — сохранность данных, а сети — безопасную коммуникацию между сервисами.