화. 8월 12th, 2025

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는 복잡한 인프라를 코드로 관리할 수 있게 해줍니다. 이 가이드의 명령어를 활용하면 개발부터 배포까지 효율적으로 제어할 수 있습니다. 🎯

더 궁금한 점은 댓글로 문의해주세요! 👇

답글 남기기

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