PRO

Что такое docker-compose? Как запустить многоконтейнерное приложение?

Docker Compose — инструмент для описания и запуска многоконтейнерных приложений через YAML-файл, обычно compose.yaml. В нём задают сервисы, сети, volumes, переменные окружения и зависимости, а приложение запускают командой docker compose up.
Подробный ответ

Что такое Docker Compose

Docker Compose позволяет описать несколько связанных контейнеров в одном YAML-файле. Например, backend, PostgreSQL, Redis и Nginx можно настроить вместе и запускать одной командой.

Пример compose.yaml

services:
  web:
    build: .
    command: python main.py
    ports:
      - "8000:8000"
    environment:
      DATABASE_URL: postgresql://app:password@db:5432/app_db
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_DB: app_db
      POSTGRES_USER: app
      POSTGRES_PASSWORD: password
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Как запустить приложение

В папке с файлом compose.yaml выполняют команду:

docker compose up

Для запуска в фоне добавляют флаг -d.

docker compose up -d

Полезные команды

docker compose ps
docker compose logs
docker compose logs -f web
docker compose down
docker compose up -d --build

Что создаёт Compose

Compose создаёт контейнеры для сервисов, default network для их связи и объявленные volumes. Сервисы в одном Compose-проекте обычно могут обращаться друг к другу по имени сервиса, например db.

Как ответить на собеседовании

Docker Compose нужен для запуска многоконтейнерного приложения через один YAML-файл. В compose.yaml я описываю сервисы, порты, volumes, сети и переменные окружения, после чего запускаю всё командой docker compose up -d.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге