Что такое Docker Compose и для чего он используется?

«Что такое Docker Compose и для чего он используется?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Docker Compose — это инструмент для определения и управления многоконтейнерными приложениями Docker с помощью декларативного YAML-файла.

Для чего используется? Для упрощения запуска сложных сред (например, приложение + БД + кэш), где контейнеры связаны между собой сетями и томами.

Пример docker-compose.yml:

version: '3.8'
services:
  webapp:
    build: .
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=db
    depends_on:
      - db
    volumes:
      - ./app:/app
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Ключевые команды:

  • docker-compose up — создает и запускает все сервисы.
  • docker-compose down — останавливает и удаляет контейнеры, сети.
  • docker-compose logs -f [service] — просмотр логов.

Почему это удобно? Вместо набора длинных docker run команд вы описываете всю инфраструктуру как код, что обеспечивает воспроизводимость и упрощает совместную работу.