Когда проект выходит за пределы одного контейнера, начинается хаос: база данных, сервер, фронтенд, очередь сообщений — всё нужно запускать вручную, настраивать соединения, отслеживать порты. Это не просто неудобно — это потеря времени и нервов. Чтобы навести порядок, придумали Docker Compose.
Это инструмент, который позволяет запускать сразу несколько Docker-контейнеров, настроенных для работы друг с другом, через один конфигурационный файл. Он читается как рецепт: что, где и как поднять. А одна команда запускает всё — быстро и слаженно.
Вы описываете инфраструктуру проекта в YAML-файле —
docker-compose.yml.
В нём можно указать:- список сервисов (приложения, базы данных и т.д.),
- зависимости между ними,
- сетевые настройки,
- переменные окружения,
- тома и порты.
Пример простого файла:version: '3.9'services: web: build: . ports: - "5000:5000" depends_on: - redis redis: image: redisА вот и команда для запуска:docker-compose upВсё. Несколько контейнеров запускаются одновременно, автоматически соединяются в одну сеть и работают как единое приложение.
Объяснить простыми словами, что такое Docker Compose можно так: это дирижёр, управляющий оркестром из контейнеров. Один взмах — и всё звучит. Он запускает, связывает, синхронизирует — сам, без вашей ручной помощи.
Такой подход помогает:- стандартизировать окружение для всей команды,
- сэкономить время на настройке,
- исключить «работает у меня, не работает у тебя»,
- превратить инфраструктуру в часть кода.
Docker Compose стал незаменимым инструментом для тех, кто работает с микросервисами, развивает сложные веб-приложения или просто хочет держать инфраструктуру под контролем. В следующих разделах разберёмся, для чего нужен Docker Compose, как его создать и запустить на практике.