Ответ
Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений с помощью одного YAML-файла.
Он позволяет описать всю инфраструктуру проекта (сервисы, сети, тома) в файле docker-compose.yml
, что делает запуск и управление сложными системами тривиальной задачей, особенно в среде разработки.
Ключевые преимущества:
- Декларативная конфигурация: Все сервисы, их настройки и связи описываются в одном файле, который легко версионировать.
- Управление всем стеком: Запуск, остановка и пересборка всех сервисов приложения выполняются одной командой (
docker-compose up
,docker-compose down
). - Изолированное окружение: По умолчанию создает изолированную сеть для сервисов, обеспечивая их простое и безопасное взаимодействие.
- Воспроизводимость: Гарантирует, что окружение будет идентичным на машине любого разработчика или на тестовом сервере.
Пример docker-compose.yml
для веб-приложения с базой данных:
version: '3.8'
services:
# Сервис веб-приложения
backend:
build: .
ports:
- "8000:8000"
depends_on:
- db
# Сервис базы данных PostgreSQL
db:
image: postgres:13
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Для запуска всего стека достаточно выполнить команду docker-compose up
.