컨테이너·워크플로우 자동화/DocKer 기본 및 활용

Docker Compose를 사용하는 이유

Data Jun 2025. 10. 12. 16:28

Docker를 사용하다 보면 하나의 컨테이너만 실행하는 경우는 드뭅니다.
웹 서버, 데이터베이스, 캐시 서버 등 여러 개의 컨테이너를 함께 실행해야 하는 경우가 많죠.
이럴 때 유용하게 사용할 수 있는 도구가 바로 Docker Compose입니다.

 

Docker Compose란?

여러 개의 Docker 컨테이너를 하나의 서비스 단위로 정의하고 구성하여,

명령 한 줄로 관리할 수 있게 도와주는 도구입니다.

 

복잡한 컨테이너 환경을 단순화하고,
설정 파일(docker-compose.yml)로 전체 구성을 관리할 수 있다는 점이 가장 큰 장점입니다.

 

 

Docker Compose를 사용하는 이유

1. 여러 개의 컨테이너를 한 번에 관리

 

여러 컨테이너로 구성된 애플리케이션을 한 번에 관리할 수 있습니다.
예를 들어, Nginx + MySQL + Redis 조합으로 이루어진 서비스를
각각 따로 실행하는 대신 한 번의 명령으로 실행하고 중지할 수 있습니다.

 

2. 복잡한 명령어를 간소화

 

이전에는 MySQL 컨테이너를 실행할 때 아래처럼 길고 복잡한 명령어를 입력해야 했습니다.

$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/username/Documents:/dev/mysql mysql

하지만 Docker Compose를 사용하면 이렇게 간단해집니다

$ docker compose up -d

모든 설정은 compose.yml 파일 안에서 관리되기 때문에,
명령어는 단 한 줄로도 충분합니다.

 

[실습] Docker Compose로 Nginx 실행하기

이번에는 Docker Compose를 직접 사용해보며
전체 흐름을 이해해보겠습니다.

 

1. Docker CLI로 실행할 때

 

먼저 Docker 명령어만으로 Nginx 컨테이너를 실행하면 다음과 같습니다.

$ docker run --name webserver -d -p 80:80 nginx

 

2. Docker Compose로 실행할 때

 

이제 같은 작업을 Compose 파일로 실행해보겠습니다.

 

 2.1 📄 compose.yml 작성

services:
  my-web-server:
    container_name: webserver
    image: nginx
    ports:
      - 80:80
  • services: 컨테이너 단위를 정의하는 최상위 항목
  • container_name: 컨테이너 이름 설정 (--name 옵션과 동일)
  • image: 사용할 이미지 지정 (docker run nginx와 동일)
  • ports: 포트 매핑 설정 (-p 80:80과 동일)

 2.2 실행하기

$ docker compose up -d

 

백그라운드에서 컨테이너가 실행됩니다.

 

2.3 실행 현황 확인

$ docker compose ps
$ docker ps

현재 실행 중인 컨테이너 정보를 확인할 수 있습니다

 

 2.3 웹 페이지 접속

 

브라우저에서 http://localhost:80 으로 접속하면
Nginx 기본 환영 페이지가 표시됩니다 👇

 

“Welcome to nginx!”

 

 2.4 컨테이너 종료 및 삭제

$ docker compose down

이 명령어 한 줄로 실행된 모든 컨테이너가 정리됩니다.

 

 

 

정리하면

항목 내용
도구 Docker Compose
역할 여러 컨테이너를 하나의 서비스 단위로 관리
장점 복잡한 명령어 단순화, 서비스 일관 실행 및 중지
실행 명령 docker compose up -d, docker compose down

Docker Compose는 개발 환경을 체계적으로 관리할 수 있는 강력한 도구입니다.
여러 컨테이너가 필요한 프로젝트라면, Compose로 통합 관리해보세요