Dandy Now!
  • Docker Compose 기본 사용법
    2025년 07월 24일 18시 25분 01초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    Docker Compose 기본 사용법

    1. Docker Compose 정의

    Docker Compose는 여러 개의 Docker 컨테이너를 정의하고 실행하기 위한 도구이다. compose.yml 파일을 사용하여 애플리케이션의 서비스를 선언적으로 구성하고 관리할 수 있다. 이를 통해 복잡한 다중 컨테이너 애플리케이션을 효율적으로 개발하고 운영하는 기반을 마련할 수 있다.

    2. compose.yml 파일 작성

    • compose.yml 파일을 아래와 같이 작성한다.

    • servicescompose.yml 파일의 최상위 키 중 하나로, 애플리케이션을 구성하는 각기 다른 컨테이너들을 정의하는 역할을 한다.

    • services 아래에 정의된 각 항목(예: my-web-server)은 하나의 독립된 서비스(컨테이너)를 의미한다.

    • 이 예제 파일은 my-web-server라는 이름의 서비스를 정의하며, nginx 이미지를 사용한다.

    • 호스트의 80번 포트를 컨테이너의 80번 포트와 연결(port forwarding)한다.

      # compose-practice/compose.yml
      services:
        my-web-server:
          container_name: my-web-server
          image: nginx
          ports:
            - "80:80"

    3. 주요 명령어

    3-1. 서비스 시작 (up)

    • compose.yml 파일이 위치한 디렉터리에서 다음 명령어를 실행하여 서비스를 시작한다.

      • 포그라운드 실행: -d 옵션 없이 실행하면 컨테이너의 로그가 터미널에 실시간으로 출력되며, Ctrl+C로 종료할 수 있다. --build 옵션을 함께 사용하면 이미지를 빌드한 후 컨테이너를 시작한다.

        docker compose up --build
      • 백그라운드 실행: -d (detached) 옵션을 사용하면 컨테이너가 백그라운드에서 실행된다.

        docker compose up -d

    3-2. 서비스 상태 확인 (ps)

    • docker compose ps 명령어는 현재 Compose 프로젝트에 의해 실행된 컨테이너들의 상태를 확인하는 데 사용된다.

      docker compose ps
    • 실행 결과는 다음과 같이 나타난다.

      NAME            IMAGE     COMMAND                   SERVICE         CREATED          STATUS          PORTS
      my-web-server   nginx     "/docker-entrypoint.…"   my-web-server   ...              Up ...          0.0.0.0:80->80/tcp

    3-3. 로그 확인 (logs)

    • docker compose logs 명령어는 백그라운드에서 실행 중인 서비스의 로그를 확인하는데 사용된다.

      docker compose logs

    3-4. 이미지 업데이트 (pull)

    • docker compose pull 명령어는 서비스에서 사용하는 이미지를 최신 버전으로 내려받는다.

      docker compose pull
    • 이 명령어는 compose.yml에 정의된 nginx 이미지의 최신 버전을 Docker Hub에서 가져온다.

    3-5. 서비스 종료 (down)

    • docker compose down 명령어는 실행 중인 서비스를 중지하고 컨테이너, 네트워크 등을 모두 삭제한다.

      docker compose down
    • down 명령 실행 후 docker compose ps로 확인하면 서비스가 완전히 종료된 것을 확인할 수 있다.

    728x90
    반응형
    댓글