D: Docker Compose는 멀티-컨테이너 애플리케이션을 정의하고 실행하기 위한 강력한 도구입니다. 개발, 테스트, 프로덕션 환경에서 서비스를 효율적으로 관리하려면 필수 명령어를 숙지해야 합니다. 이 가이드에서는 실전에서 자주 사용되는 Docker Compose 명령어를 예제와 함께 상세히 설명합니다.
📌 1. 기본 명령어
1.1 docker-compose up
- 용도:
docker-compose.yml
파일에 정의된 서비스를 시작하고 컨테이너를 생성합니다. - 옵션:
-d
: 백그라운드 실행 (Detached mode)--build
: 이미지를 재빌드 후 실행docker-compose up -d --build
1.2 docker-compose down
- 용도: 실행 중인 모든 컨테이너, 네트워크, 볼륨을 정리합니다.
- 옵션:
-v
: 볼륨(Volume)까지 삭제docker-compose down -v
1.3 docker-compose ps
- 용도: 현재 실행 중인 서비스의 상태를 확인합니다.
docker-compose ps
출력 예시:
Name Command State Ports -------------------------------------------------------- web npm start Up 0.0.0.0:3000->3000/tcp db docker-entrypoint.sh ... Up 5432/tcp
🛠 2. 서비스 관리 명령어
2.1 docker-compose start/stop/restart
- 용도: 특정 서비스를 시작/중지/재시작합니다.
docker-compose stop web # 'web' 서비스 중지 docker-compose restart db # 'db' 서비스 재시작
2.2 docker-compose logs
- 용도: 서비스의 로그를 확인합니다.
-f
: 실시간 로그 스트림 (Tail mode)docker-compose logs -f web
2.3 docker-compose exec
- 용도: 실행 중인 컨테이너 내부에서 명령어를 실행합니다.
docker-compose exec db psql -U postgres # PostgreSQL 컨테이너에 접속
🔍 3. 고급 명령어
3.1 docker-compose config
- 용도:
docker-compose.yml
파일의 유효성을 검증하고 최종 설정을 출력합니다.docker-compose config
3.2 docker-compose pull
- 용도: 서비스의 최신 이미지를 레지스트리에서 가져옵니다.
docker-compose pull
3.3 docker-compose build
- 용도: 서비스의 이미지를 재빌드합니다.
docker-compose build --no-cache # 캐시 없이 빌드
🚀 4. 실전 예제: 웹 애플리케이션 + DB 배포
Step 1. docker-compose.yml
작성
version: "3.8"
services:
web:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:14
environment:
POSTGRES_PASSWORD: mysecretpassword
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
Step 2. 서비스 실행
docker-compose up -d
Step 3. 로그 확인
docker-compose logs -f web
💡 5. 문제 해결 팁
- 포트 충돌 →
docker-compose down
후 재시작 - 이미지 업데이트 →
docker-compose pull && docker-compose up -d
- 볼륨 문제 →
docker-compose down -v
로 완전 삭제 후 재시작
✅ 마무리
Docker Compose는 복잡한 인프라를 코드로 관리할 수 있게 해줍니다. 이 가이드의 명령어를 활용하면 개발부터 배포까지 효율적으로 제어할 수 있습니다. 🎯
더 궁금한 점은 댓글로 문의해주세요! 👇