Ответ
Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Вместо ручного запуска нескольких контейнеров с отдельными командами docker run, вы описываете всю сервисную архитектуру в одном YAML-файле (docker-compose.yml).
Основные задачи:
- Оркестрация сервисов: Запуск связанных контейнеров (например, веб-приложение, база данных, кэш) одной командой.
- Управление зависимостями: Автоматическое определение порядка запуска и связей между сервисами.
- Конфигурация сети и томов: Создание изолированной сети для сервисов и общих томов для данных.
- Управление переменными окружения: Централизованная настройка окружения для разных сред (dev, test).
Пример docker-compose.yml для веб-приложения с PostgreSQL:
version: '3.8'
services:
web:
build: .
ports:
- "8000:8000"
depends_on:
- db
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/appdb
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: appdb
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Команды:
docker-compose up -d— запуск всех сервисов в фоне.docker-compose down— остановка и удаление контейнеров, сети.docker-compose logs -f web— просмотр логов конкретного сервиса.