Docker Compose — инструмент для определения и запуска многоконтейнерных приложений на базе контейнерной платформы Docker. Он позволяет описывать конфигурацию сервисов, сетей и томов в одном текстовом файле, обычно в формате YAML, после чего единым действием создавать и управлять комплексом контейнеров. Compose ориентирован на упрощение разработки, тестирования и локального разворачивания многокомпонентных систем, где каждый компонент выполняется в отдельном контейнере.
Исторически Docker Compose появился как средство декларирования связей между контейнерами и автоматизации их запуска в средах разработки и непродакшн окружениях. Несмотря на то, что экосистема Docker включает и другие инструменты для оркестрации и масштабирования, такие как Docker Swarm и Kubernetes, Compose продолжает использоваться для локальной сборки и непрерывной интеграции благодаря простоте синтаксиса и способности описывать зависимости, переменные окружения, монтирования и сети в одном месте.
- Описание сервисов: централизованное определение контейнеров, образов, команд запуска и параметров окружения.
 - Управление зависимостями: определение порядка запуска сервисов и ожиданий готовности между ними.
 - Сетевые настройки: автоматическое создание сетей и конфигурация взаимодействия контейнеров внутри проекта.
 - Тома и хранилище: описание и подключение постоянных томов для сохранения данных за пределами жизненного цикла контейнера.
 - Параметры масштабирования: возможность запускать несколько экземпляров сервиса для локального тестирования масштабируемости.
 - Переменные окружения и шаблоны: поддержка внешних файлов и переменных для конфигурации сервисов в разных средах.
 - Интеграция в CI/CD: удобство использования в конвейерах сборки и тестирования для создания изолированных сред.
 - Командная работа: единый конфигурационный файл упрощает обмен средой разработки между участниками команды.