Gymterview
junior

Что такое Docker Compose?

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

Зачем нужен

  • Локальная разработка — запуск приложения вместе с базой данных, кэшем, очередью сообщений одной командой
  • Тестовые окружения
  • Описание зависимостей между сервисами

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

Команда Описание
docker compose up Создать и запустить все сервисы
docker compose up -d Запустить в фоновом режиме
docker compose down Остановить и удалить контейнеры, сети
docker compose down -v Остановить и удалить вместе с томами
docker compose build Пересобрать образы
docker compose logs -f Следить за логами всех сервисов
docker compose ps Список запущенных сервисов
docker compose exec service cmd Выполнить команду в контейнере сервиса

Пример docker-compose.yml

Пример
version: '3.8'

services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=dev
      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/mydb
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
    volumes:
      - postgres-data:/var/lib/postgresql/data

volumes:
  postgres-data:

Начиная с Docker Compose V2, команда docker-compose (через дефис) заменена на docker compose (через пробел). Ключ version в docker-compose.yml теперь является необязательным.

На собеседовании: Docker Compose — стандартный инструмент для локальной разработки Java-приложений. Покажите, что умеете описать типичный стек: приложение + БД + кэш. Упомяните, что depends_on гарантирует только порядок запуска контейнеров, но не готовность сервиса внутри.