Каково основное назначение Docker Compose

Ответ

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

Он позволяет описать всю инфраструктуру проекта (сервисы, сети, тома) в файле docker-compose.yml, что делает запуск и управление сложными системами тривиальной задачей, особенно в среде разработки.

Ключевые преимущества:

  • Декларативная конфигурация: Все сервисы, их настройки и связи описываются в одном файле, который легко версионировать.
  • Управление всем стеком: Запуск, остановка и пересборка всех сервисов приложения выполняются одной командой (docker-compose up, docker-compose down).
  • Изолированное окружение: По умолчанию создает изолированную сеть для сервисов, обеспечивая их простое и безопасное взаимодействие.
  • Воспроизводимость: Гарантирует, что окружение будет идентичным на машине любого разработчика или на тестовом сервере.

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

version: '3.8'

services:
  # Сервис веб-приложения
  backend:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db

  # Сервис базы данных PostgreSQL
  db:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Для запуска всего стека достаточно выполнить команду docker-compose up.