Как работает Docker

«Как работает Docker» — вопрос из категории CI/CD и DevOps, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Docker — это платформа для контейнеризации приложений. В контексте QA и CI/CD мы используем Docker для создания изолированных, воспроизводимых сред тестирования.

Ключевые компоненты для QA:

  • Образ (Image) — шаблон с приложением, зависимостями и конфигурацией (например, selenium/standalone-chrome для UI-тестов).
  • Контейнер — запущенный экземпляр образа. Мы запускаем в нём тесты, БД или само тестируемое приложение.
  • Dockerfile — инструкция для сборки образа.
  • Docker Compose — инструмент для оркестрации нескольких контейнеров (приложение + БД + Selenium Grid).

Пример использования в тестах: Мы можем описать среду в docker-compose.yml:

version: '3'
services:
  app:
    image: my-app:test
    ports:
      - "8080:8080"
  selenium-hub:
    image: selenium/hub
    ports:
      - "4444:4444"
  chrome:
    image: selenium/node-chrome
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub

Затем одной командой docker-compose up поднимается вся инфраструктура для запуска автотестов.

Преимущества для QA:

  1. Воспроизводимость: Окружение идентично на машине разработчика и в CI/CD (Jenkins, GitLab CI).
  2. Изоляция: Тесты не влияют на основную систему и друг на друга.
  3. Масштабирование: Легко запускать параллельные тестовые прогоны в нескольких контейнерах.
  4. Эффективность: Контейнеры запускаются за секунды, в отличие от виртуальных машин.