Что такое Docker Compose и для чего он используется

Ответ

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.