이 문서는 docker-compose
의 개념과 기본 사용법, 실무에서 자주 사용되는 패턴들을 정리한 가이드입니다.
Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 실행할 수 있도록 도와주는 도구입니다.
YAML 파일(docker-compose.yml
)을 통해 컨테이너의 서비스, 네트워크, 볼륨 등을 선언적으로 설정할 수 있습니다.
docker compose up
)Docker Desktop에 기본 포함되어 있습니다. CLI에서 다음 명령어로 버전을 확인할 수 있습니다:
docker compose version
version: '3.8'
services:
web:
image: nginx
ports:
- "8080:80"
app:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
명령어 | 설명 |
---|---|
docker compose up |
서비스 실행 (-d 옵션으로 백그라운드 실행 가능) |
docker compose down |
모든 컨테이너, 네트워크, 볼륨 정리 |
docker compose build |
서비스 빌드 |
docker compose logs |
로그 확인 |
docker compose ps |
실행 중인 서비스 목록 확인 |
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- MONGO_URL=mongodb://mongo:27017/mydb
depends_on:
- mongo
mongo:
image: mongo
ports:
- "27017:27017"
version: '3'
services:
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- frontend
- backend
frontend:
build: ./frontend
ports:
- "3000:3000"
backend:
build: ./backend
ports:
- "5000:5000"
volumes:
db-data:
networks:
backend:
services:
db:
volumes:
- db-data:/var/lib/postgresql/data
networks:
- backend
.env
파일을 함께 사용하여 환경변수 분리 가능depends_on
은 시작 순서만 보장, 상태 확인은 Healthcheck를 추가로 설정docker compose -f docker-compose.yml -f docker-compose.prod.yml up