Wiki
DevOps

docker-compose — что это простыми словами

docker-compose — YAML-описание мульти-контейнерного приложения. Один файл, одна команда `docker compose up`. Стандарт для dev-стендов и single-node prod.

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 без нужды.

Частые вопросы

compose или swarm?
compose — single-node, dev/simple prod. Swarm — multi-node orchestrator (устарел, k8s вытеснил). Compose всё живёт и развивается.
compose v1 vs v2?
v1 (`docker-compose`) — Python, deprecated. v2 (`docker compose`) — Go, встроен, актуальный. Смотрите v2.

Смотрите также