「웹 앱 + DB + Redis」 같은 「여러 컨테이너로 구성된 시스템」을 한 파일에 정의 + 한 명령으로 실행.
Docker Compose가 그 도구.
docker-compose.yml.
프로젝트 루트에 두는 YAML.
version·services 두 키.
services 안에 web·db·redis 같은 각 컨테이너 정의 — image·ports·volumes·environment 등.
예시.
services: / web: / image: myapp / ports: ["80:80"] / depends_on: [db] / db: / image: postgres / environment: POSTGRES_PASSWORD: secret.
두 컨테이너 + 의존성 + 환경변수가 명확.
기본 명령.
docker compose up -d — 모두 시작.
docker compose down — 모두 중지·제거.
docker compose logs — 로그.
docker compose ps — 상태.
docker compose exec web bash — web 컨테이너 안에서 셸.
활용.
1) 로컬 개발 — DB·Redis·앱을 한 명령에.
2) 작은 프로덕션 — 단순한 멀티 컨테이너 앱.
3) 시연·CI — docker compose up으로 재현 가능한 환경.
큰 시스템은 Kubernetes로, 작거나 단일 호스트는 Compose가 충분.
한 줄 요약
Docker Compose는 다중 컨테이너 관리 — docker-compose.yml에 services 정의, docker compose up으로 모두 시작.
로컬 개발·작은 프로덕션·시연에 표준.
큰 건 Kubernetes.
더 알아볼 것
- volumes·networks·healthcheck
- compose v1 vs v2
- 스테이징·프로덕션 분리