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гарантирует только порядок запуска контейнеров, но не готовность сервиса внутри.