화. 8월 12th, 2025

D: 🚀 도커 컴포즈(Docker Compose)는 멀티 컨테이너 애플리케이션을 정의하고 실행하기 위한 강력한 도구입니다. 복잡한 서비스 배포를 단순화하고, 개발 환경과 프로덕션 환경에서 일관된 워크플로우를 제공합니다. 이번 포스팅에서는 실무에서 자주 사용하는 Docker Compose 명령어들을 총정리해보겠습니다! ✨


1️⃣ 기본 명령어 (Basic Commands)

docker-compose up 🏃‍♂️

  • 컨테이너 생성 및 실행 (백그라운드 실행 시 -d 옵션 추가)
    docker-compose up -d  # 백그라운드 실행

docker-compose down 🛑

  • 컨테이너 중지 및 제거 (네트워크, 볼륨 포함 삭제 시 -v 옵션)
    docker-compose down -v  # 모든 리소스 정리

docker-compose ps 📋

  • 실행 중인 서비스 상태 확인
    docker-compose ps

2️⃣ 빌드 및 로그 관련 명령어 (Build & Logs)

docker-compose build 🛠️

  • 서비스 이미지 재빌드 (변경사항 반영 시)
    docker-compose build --no-cache  # 캐시 없이 완전 재빌드

docker-compose logs 📜

  • 서비스 로그 확인 (실시간 로그 보기 시 -f 옵션)
    docker-compose logs -f web  # web 서비스 로그 실시간 출력

3️⃣ 실행 제어 명령어 (Execution Control)

docker-compose start/stop/restart ⏯️

  • 서비스 시작/중지/재시작
    docker-compose restart nginx  # nginx 서비스만 재시작

docker-compose pause/unpause ⏸️

  • 서비스 일시 정지 및 재개
    docker-compose pause redis

4️⃣ 환경 설정 및 관리 (Configuration)

docker-compose config 🔍

  • 컴포즈 파일 검증 및 확인
    docker-compose config  # 유효성 검사

docker-compose pull ⬇️

  • 최신 이미지 다운로드
    docker-compose pull  # 모든 서비스 이미지 업데이트

5️⃣ 고급 명령어 (Advanced Commands)

docker-compose exec 💻

  • 실행 중인 컨테이너 내부 명령 실행
    docker-compose exec db psql -U postgres  # PostgreSQL 콘솔 접속

docker-compose scale 📊

  • 서비스 복제본 수 조정 (Swarm 모드 전용)
    docker-compose scale web=3  # web 서비스 3개 인스턴스 실행

🎯 실전 활용 예제

# docker-compose.yml 예제
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  db:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: mysecretpassword
  1. 서비스 배포

    docker-compose up -d
  2. 로그 확인

    docker-compose logs -f web
  3. DB 백업 수행

    docker-compose exec db pg_dump -U postgres > backup.sql

💡 Pro Tips

  • docker-compose.yml 버전 호환성 확인 필수! (3.x 권장)
  • .env 파일로 환경변수 관리하면 보안성 UP! 🔒
  • depends_on으로 서비스 시작 순서 제어 가능
    services:
    web:
    depends_on:
      - db

이제 Docker Compose로 손쉽게 멀티 컨테이너 애플리케이션을 관리해보세요! 🎉 혹시 궁금한 점이 있다면 댓글로 남겨주세요~ 😊

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다