Ответ
Docker Compose — идеальный инструмент для сценариев, где нужно определить и запустить многоконтейнерное приложение на одной машине. Его основное применение — локальная разработка и тестирование.
Основные сценарии использования:
- Локальная среда разработки: Быстро поднять весь стек зависимостей приложения (веб-сервер, база данных, кеш, очередь сообщений) одной командой
docker-compose up. - Автоматизированное тестирование (CI): В пайплайне CI можно использовать
docker-composeдля запуска интеграционных тестов, где приложение должно взаимодействовать с другими сервисами. - Демонстрации и быстрые прототипы: Позволяет легко поделиться рабочей конфигурацией среды через один файл
docker-compose.yml.
Пример docker-compose.yml для типичного веб-приложения:
version: '3.8'
services:
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD: secret
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
web:
build: .
ports:
- "8000:8000"
environment:
DATABASE_URL: postgres://postgres:secret@postgres/myapp
REDIS_URL: redis://redis:6379
depends_on:
- postgres
- redis
# Для разработки: монтируем исходный код
volumes:
- ./src:/app/src
volumes:
postgres_data:
Чем Docker Compose отличается от оркестраторов (K8s): Compose работает на одном хосте, не обеспечивает отказоустойчивости, автоматического масштабирования или распределенного хранения конфигураций. Для продакшн-сред с высокими требованиями к доступности и масштабируемости нужен Kubernetes или аналогичный оркестратор.