Docker Compose란
여러 컨테이너로 구성된 애플리케이션을 YAML 파일 하나로 정의하고, 명령어 하나로 전체를 실행·중지할 수 있게 해주는 도구입니다.
기본 예시 — 웹앱 + DB
# docker-compose.yml
services:
web:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
실행
docker compose up -d # 전체 컨테이너 백그라운드 실행
docker compose down # 전체 중지 및 제거
여러 환경별 설정 분리
개발/운영 환경마다 설정이 다를 때는 Compose 파일을 여러 개로 나눠 조합할 수 있습니다.
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
왜 필요한가
컨테이너가 몇 개만 늘어나도 docker run 명령을 하나씩 관리하는 건 비효율적입니다. Compose는 서비스 간 의존 관계(depends_on)와 네트워크를 자동으로 구성해줍니다.