Ответ
Docker Compose — это инструмент для определения и запуска мультиконтейнерных приложений Docker. Вместо ручного запуска каждого контейнера отдельными командами, вы описываете всю инфраструктуру (сервисы, сети, тома) в одном декларативном YAML-файле (docker-compose.yml), а затем управляете ею едиными командами.
Пример docker-compose.yml для веб-приложения с Nginx и MySQL:
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: app_db
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Основные команды и преимущества:
docker-compose up -d— запускает все сервисы в фоне.docker-compose down— останавливает и удаляет контейнеры, сети (но не тома по умолчанию).docker-compose logs -f [service]— просмотр логов.- Автоматическое создание сети: Все сервисы из одного файла попадают в общую сеть и могут обращаться друг к другу по имени сервиса (например,
db). - Управление зависимостями: Параметр
depends_onгарантирует порядок запуска. - Переменные окружения: Можно использовать файл
.envдля параметризации конфигурации.
В продакшене для оркестрации часто используют Kubernetes, но Docker Compose идеален для локальной разработки, тестирования и простых CI/CD пайплайнов.