docker-compose — инструмент для описания и запуска multi-container Docker-приложений через один YAML-файл `docker-compose.yml`. С 2021 интегрирован в Docker CLI как `docker compose` (пробел, не дефис).
Пример типичного стека: ```yaml services: app: build: . ports: ["3000:3000"] depends_on: [postgres, redis] environment: DATABASE_URL: postgres://postgres:pass@postgres/mydb postgres: image: postgres:16 volumes: [pgdata:/var/lib/postgresql/data] redis: image: redis:7 volumes: pgdata: ``` Одна команда `docker compose up -d` — вся среда поднята.
Use cases: (1) dev-стенд — быстро поднять зависимости (Postgres + Redis + Kafka) на локальном ноуте, (2) CI — интеграционные тесты в контейнерах, (3) single-node production — маленький SaaS на VPS, без K8s. Для multi-node — K8s / Docker Swarm.
Отличие от Kubernetes: (1) проще — 10 строк YAML вместо 100, (2) один хост — нет распределения по нодам, (3) нет self-healing на другой сервер. Sweet spot: 90 % small-scale проектов. Не бросайтесь на K8s без нужды.