
Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구입니다. 여러 개의 컨테이너 설정을 YAML파일 하나에 적어두고, 명령어 한 줄로 모든 서비스를 동시에 올리거나 내릴 수 있습니다.
간편한 관리: 복잡한 실행 옵션을 매번 입력할 필요 없이 파일로 관리합니다.
환경 일관성: 팀원 모두가 동일한 설정 파일(yml)을 공유해 똑같은 환경을 구성합니다.
서비스 의존성 제어: 예를 들어 "데이터베이스가 먼저 실행된 후 웹 서버를 실행해라" 같은 순서를 정할 수 있습니다.
docker-compose.yml 📄version: '3'
services:
# 1. 외부 요청을 받는 웹 서버
web:
image: nginx # 이미 만들어진 공식 이미지를 가져다 씀
ports:
- "8080:80" # 내 컴퓨터의 8080 포트로 접속하면 컨테이너의 80포트로 연결
# 2. 실제 비즈니스 로직이 돌아가는 앱
app:
build: . # 현재 위치의 Dockerfile을 읽어 직접 이미지를 빌드
ports:
- "8081:8080"
depends_on:
- db # 중요! DB가 먼저 실행되어야 앱이 켜지도록 순서 보장
# 3. 데이터를 저장하는 데이터베이스
db:
image: postgres
environment:
POSTGRES_PASSWORD: example # 컨테이너 내부에서 사용할 비밀번호 설정
Dockerfile을 이용해 이미지를 빌드할 때 사용합니다.| 명령어 | 설명 |
|---|---|
docker compose up | 설정 파일에 정의된 모든 서비스 생성 및 실행 |
docker compose up -d | 백그라운드에서 서비스 실행 |
docker compose down | 실행 중인 모든 서비스 정지 및 컨테이너/네트워크 삭제 |
docker compose logs -f | 실행 중인 서비스들의 로그 실시간 확인 |
docker compose ps | 현재 Compose로 관리되는 서비스들의 상태 확인 |