Ответ
Docker Compose — это инструмент для определения и запуска мультиконтейнерных Docker-приложений. Он позволяет управлять всем жизненным циклом приложения (сборка, запуск, остановка) с помощью одной команды, используя конфигурационный YAML-файл.
Основной файл — docker-compose.yml
. В нем описываются:
services
: Конфигурации отдельных контейнеров (веб-сервер, база данных, кэш).networks
: Виртуальные сети для взаимодействия сервисов.volumes
: Места для постоянного хранения данных (например, для БД).
Пример docker-compose.yml
для связки Nginx + PostgreSQL:
version: '3.8'
services:
# Сервис веб-сервера
web:
image: nginx:alpine
ports:
- "8080:80" # Проброс порта 8080 хоста на 80 контейнера
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro # Монтирование конфига в режиме read-only
depends_on:
- db
# Сервис базы данных
db:
image: postgres:14-alpine
restart: always
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data # Использование именованного volume для данных
# Определение именованного volume
volumes:
postgres_data:
Ключевые моменты:
depends_on
: Гарантирует порядок запуска контейнеров, но не ожидает полной готовности сервиса внутри контейнера.- Именованные volumes: Предпочтительный способ хранения данных, так как ими проще управлять, чем bind mounts.