Skip to content

compose (Многоконтейнерное приложение)

Общее описание:
docker compose — это инструмент управления многоконтейнерными приложениями в Docker, описанными в YAML-файле (docker-compose.yml). Он позволяет запускать, останавливать, собирать и анализировать группы контейнеров как единое целое.

С переходом на Docker v20.10+, классическая команда docker-compose (через отдельный бинарник) была заменена встроенной командой docker compose (через CLI). Теперь это часть основного клиента Docker, не требующая отдельной установки.


Основная идея compose

Вместо запуска каждого контейнера вручную с помощью docker run, команда docker compose позволяет описать всю инфраструктуру (например, backend + БД + redis) в одном YAML-файле и управлять ей единообразно.

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

version: "3.8"

services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

Теперь достаточно одной команды:

docker compose up


Замена docker-composedocker compose

Было Стало
docker-compose up docker compose up
docker-compose down docker compose down
docker-compose logs -f docker compose logs -f
docker-compose exec app sh docker compose exec app sh

docker compose теперь поддерживает те же флаги, но работает быстрее, без отдельной установки, и интегрирован с Docker CLI.


Ключевые команды docker compose (с разбивкой)

Команда Назначение Подробно
up Запуск всех сервисов compose_up.md
down Остановка и удаление compose_down.md
logs Просмотр логов compose_logs.md
exec Выполнить команду в контейнере compose_exec.md
build Сборка образов compose_build.md

Общие флаги docker compose

-f (file) – указание файла конфигурации

docker compose -f docker-compose.prod.yml up

-p (project name) – указание имени проекта

docker compose -p myproject up

--env-file – загрузка переменных окружения

docker compose --env-file .env up

Преимущества docker compose

  • 🧹 Единый YAML-файл для всей инфраструктуры
  • ⚖️ Быстрый запуск проектов
  • 🛠️ Удобно для CI/CD и dev-среды
  • 🧼 Упрощает управление зависимостями
  • 💡 Сценарии up, down, logs, exec — всё в одном

📌 См. также:
- 🧠 Docker compose для души
- 🛠️ Все элементы файла docker-compose.yml
- ⚙️ Запуск сервисов (up)
- 🧹 Остановка и удаление (down)
- 📜 Логи проекта (logs)
- 🔍 Выполнение команд (exec)
- 🏗️ Сборка образов (build)