본문 바로가기
Docker

Docker Compose를 사용한 멀티 컨테이너 애플리케이션 관리 / Compose 명령어 사용법: docker-compose up, dock

by Maccrey Coding 2024. 9. 12.
반응형

 
Docker Compose는 여러 개의 Docker 컨테이너를 쉽게 관리할 수 있는 도구입니다. docker-compose.yml 파일을 통해 여러 서비스를 정의하고, 이들을 간편하게 시작하고 중지할 수 있습니다.
이번 블로그에서는 Docker Compose의 핵심 명령어인 docker-compose up과 docker-compose down을 초보자가 이해하기 쉽게 설명하겠습니다.

1. Docker Compose 명령어 개요

Docker Compose는 다양한 명령어를 제공하여 멀티 컨테이너 애플리케이션을 관리할 수 있습니다. 그중 docker-compose up과 docker-compose down은 가장 기본적이면서도 중요한 명령어입니다.

  • docker-compose up: 정의된 서비스들을 시작합니다. 이 명령어는 컨테이너를 백그라운드에서 실행하거나, 콘솔에서 로그를 실시간으로 확인할 수 있게 합니다.
  • docker-compose down: 실행 중인 컨테이너를 중지하고, 관련 리소스(네트워크, 볼륨 등)를 정리합니다.

이 명령어들은 Docker Compose의 핵심 기능을 제공하며, 애플리케이션의 실행과 관리를 간편하게 도와줍니다.

2. docker-compose up 명령어

docker-compose up 명령어는 docker-compose.yml 파일에 정의된 모든 서비스를 시작하는 명령어입니다. 이 명령어를 통해 컨테이너를 생성하고 실행할 수 있습니다.

2.1 기본 사용법

docker-compose up
  • 기본 실행: 위 명령어를 실행하면, 현재 디렉토리의 docker-compose.yml 파일을 읽어 서비스를 시작합니다. 기본적으로 컨테이너가 포그라운드에서 실행되며, 콘솔에서 로그를 실시간으로 확인할 수 있습니다.

2.2 백그라운드에서 실행

컨테이너를 백그라운드에서 실행하고 싶다면, -d 플래그를 추가합니다.

docker-compose up -d
  • 백그라운드 실행: -d 플래그를 사용하면, 컨테이너가 백그라운드에서 실행되고 로그는 콘솔에 출력되지 않습니다. 컨테이너가 성공적으로 실행되면, 터미널은 즉시 반환됩니다.

2.3 특정 서비스만 실행

특정 서비스만 실행하려면 서비스 이름을 지정합니다.

docker-compose up web
  • 서비스 이름 지정: 위 명령어는 docker-compose.yml 파일에서 web 서비스만 시작합니다. 여러 서비스를 동시에 실행할 때는 각 서비스 이름을 공백으로 구분하여 나열할 수 있습니다.

3. docker-compose down 명령어

docker-compose down 명령어는 실행 중인 컨테이너를 중지하고, 관련된 네트워크와 볼륨 등을 정리합니다. 이 명령어를 사용하면 애플리케이션의 모든 리소스를 깨끗하게 정리할 수 있습니다.

3.1 기본 사용법

docker-compose down
  • 기본 실행: 위 명령어를 실행하면, docker-compose.yml 파일에 정의된 모든 컨테이너가 중지되고, 생성된 네트워크와 볼륨이 제거됩니다. 데이터베이스와 같은 영속적인 볼륨은 기본적으로 제거되지 않지만, 설정에 따라 제거할 수도 있습니다.

3.2 추가 옵션

  • 볼륨 제거: --volumes 플래그를 추가하면, 컨테이너와 함께 생성된 볼륨도 삭제할 수 있습니다.
docker-compose down --volumes
  • 볼륨 제거: 이 명령어는 애플리케이션에서 사용된 모든 볼륨을 삭제하여, 데이터가 완전히 제거됩니다. 데이터를 보존하려면 이 플래그를 사용하지 않아야 합니다.
  • 네트워크 제거: --remove-orphans 플래그를 사용하면, 현재 정의된 서비스에 속하지 않는 컨테이너를 제거할 수 있습니다.
docker-compose down --remove-orphans

 

  • 유령 컨테이너 제거: 이 명령어는 현재 docker-compose.yml 파일에 정의되지 않은, 불필요한 컨테이너를 제거합니다.

4. 실제 사용 예제

4.1 웹 애플리케이션과 데이터베이스 실행

아래와 같이 docker-compose.yml 파일을 설정한 후

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: mydatabase
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

1. 컨테이너 시작: 다음 명령어로 웹 애플리케이션과 데이터베이스를 시작합니다.

docker-compose up

2. 백그라운드 실행: 컨테이너를 백그라운드에서 실행하려면.

docker-compose up -d

3. 컨테이너 중지 및 리소스 정리
 
Docker Compose는 멀티 컨테이너 애플리케이션을 간편하게 관리할 수 있는 강력한 도구입니다.
docker-compose up과 docker-compose down 명령어를 통해 애플리케이션의 실행과 정리를 효과적으로 수행할 수 있습니다.
이러한 명령어를 잘 활용하면, 복잡한 컨테이너 환경을 보다 쉽게 관리하고 유지할 수 있습니다.
 
이 블로그에서는 Docker Compose의 기본 명령어 사용법을 초보자가 이해하기 쉽게 설명했습니다.
추가적인 명령어나 고급 설정은 Docker Compose 공식 문서를 참조하여 더 많은 기능을 익히세요.
 

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 
 

반응형