Опишите работу с Docker Compose

Ответ

Docker Compose — это инструмент для определения и запуска мультиконтейнерных Docker-приложений. Он позволяет описывать все сервисы, сети и тома приложения в одном YAML-файле (docker-compose.yml), а затем управлять ими одной командой.

Почему используется:

  • Упрощение оркестрации: Позволяет легко запускать, останавливать и перезапускать целые стеки приложений.
  • Локальная разработка: Идеален для создания изолированных сред разработки, максимально приближенных к продакшену.
  • Тестирование: Удобен для развертывания тестовых сред.

Пример docker-compose.yml:

version: '3.8'

services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db

  db:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Основные команды:

  • docker-compose up -d: Запуск всех сервисов в фоновом режиме.
  • docker-compose down: Остановка и удаление контейнеров, сетей и томов, определенных в файле.
  • docker-compose logs [service_name]: Просмотр логов сервисов.
  • docker-compose build: Пересборка образов сервисов.

Используется для разворачивания таких стеков, как Django + PostgreSQL, FastAPI + Redis и других, значительно упрощая управление зависимостями и конфигурацией.