개발/도커(DOCKER)

Docker Compose 기본 사용법 정리 (초보자 쉽게 이해하기)

Mr.Lee 하루 2026. 3. 18. 07:28

Docker Compose 기본 사용법 정리 (초보자 쉽게 이해하기)

Docker를 조금만 사용해 보면 이런 상황을 자주 겪게 됩니다.

  • 웹 서버 컨테이너
  • DB 컨테이너
  • Redis 컨테이너

이렇게 여러 개의 컨테이너를 동시에 실행해야 하는 경우가 많습니다.

하지만 매번 docker run 명령어를 여러 번 입력하는 것은 꽤 번거로운 일입니다.

이때 사용하는 도구가 바로 Docker Compose입니다.

Docker Compose를 사용하면 여러 개의 컨테이너를 하나의 설정 파일로 관리하고 한 번에 실행할 수 있습니다.


목차

  • Docker Compose란 무엇인가
  • Docker Compose를 사용하는 이유
  • docker-compose.yml 파일 구조
  • 기본 사용 예제
  • 자주 사용하는 명령어
  • 정리

Docker Compose란 무엇인가

Docker Compose는 여러 개의 Docker 컨테이너를 하나의 설정 파일로 정의하고 동시에 실행할 수 있게 해주는 도구입니다.

즉 다음과 같은 구조를 한 번에 실행할 수 있습니다.


웹 서버 (Node / Spring)
데이터베이스 (MySQL / PostgreSQL)
캐시 서버 (Redis)

이 모든 컨테이너를 docker-compose.yml 파일 하나로 관리할 수 있습니다.

그래서 Docker를 사용하는 대부분의 프로젝트에서는 Compose를 함께 사용합니다.


Docker Compose를 사용하는 이유

Docker Compose를 사용하는 가장 큰 이유는 환경 관리가 매우 쉬워지기 때문입니다.

  • 여러 컨테이너를 한 번에 실행 가능
  • 프로젝트 환경을 코드로 관리
  • 개발 환경 재현이 쉬움
  • 명령어 한 번으로 실행 가능

특히 팀 프로젝트에서는 Compose를 사용하면 개발 환경을 동일하게 맞추기 쉬워집니다.


docker-compose.yml 파일 구조

Docker Compose는 docker-compose.yml 파일을 기반으로 동작합니다.

기본적인 구조는 다음과 같습니다.


version: "3"

services:

  web:
    image: nginx
    ports:
      - "80:80"

  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 1234

여기서 중요한 부분은 services입니다.

services 아래에 실행할 컨테이너들을 정의합니다.


Docker Compose 기본 예제

웹 서버와 데이터베이스를 함께 실행하는 간단한 예제를 보겠습니다.


version: "3"

services:

  web:
    image: nginx
    ports:
      - "8080:80"

  database:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 1234

이 파일을 저장한 뒤 다음 명령어를 실행합니다.


docker-compose up

그러면 다음 작업이 자동으로 진행됩니다.

  1. nginx 컨테이너 실행
  2. mysql 컨테이너 실행
  3. 네트워크 자동 생성

단 한 줄의 명령어로 여러 컨테이너가 동시에 실행됩니다.


자주 사용하는 Docker Compose 명령어

Docker Compose를 사용할 때 가장 많이 사용하는 명령어는 다음과 같습니다.

컨테이너 실행


docker-compose up

백그라운드 실행


docker-compose up -d

컨테이너 종료


docker-compose down

컨테이너 상태 확인


docker-compose ps

개발 환경에서는 보통 다음 명령어를 가장 많이 사용합니다.


docker-compose up -d

정리

Docker Compose는 여러 개의 Docker 컨테이너를 하나의 파일로 관리할 수 있는 도구입니다.

핵심 개념을 정리하면 다음과 같습니다.


docker-compose.yml
↓
서비스 정의
↓
docker-compose up
↓
모든 컨테이너 실행

Docker를 사용한다면 Compose는 거의 필수 도구라고 할 수 있습니다.

특히 개발 환경 구축이나 테스트 환경을 만들 때 매우 유용합니다.


자주 묻는 질문 (FAQ)

Docker Compose는 언제 사용하는 것이 좋을까요?

웹 서버, 데이터베이스, 캐시 서버처럼 여러 컨테이너를 함께 실행해야 할 때 사용하는 것이 좋습니다.

Docker Compose 없이도 Docker 사용이 가능한가요?

가능합니다. 하지만 여러 컨테이너를 실행할 때 관리가 어려워질 수 있습니다.

Docker Compose는 운영 환경에서도 사용할 수 있나요?

가능하지만 대규모 환경에서는 Kubernetes 같은 오케스트레이션 도구를 사용하는 경우가 많습니다.