Что такое Docker и как его применяют?

«Что такое Docker и как его применяют?» — вопрос из категории CI/CD и DevOps, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Docker — это платформа для контейнеризации приложений, которая упаковывает код, зависимости и среду выполнения в переносимые образы.

Основные применения:

  • Изоляция зависимостей: Каждое приложение работает в своём контейнере со своими библиотеками.
  • Воспроизводимость окружений: Одинаковый образ гарантирует одинаковое поведение на всех этапах (dev, staging, prod).
  • Масштабирование и оркестрация: Контейнеры легко масштабируются и управляются системами вроде Kubernetes.

Пример Dockerfile для веб-приложения:

FROM nginx:alpine
COPY ./src /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Ключевые концепции:

  • Образ (Image): Шаблон для создания контейнеров.
  • Контейнер (Container): Запущенный экземпляр образа.
  • Том (Volume): Механизм для сохранения данных вне контейнера.
  • Docker Compose: Инструмент для определения и запуска многоконтейнерных приложений (например, веб-сервер + база данных).