DockerCompose와 멀티컨테이너

Compose 기본

여러 docker run 명령을 흩어 놓는 대신 compose.yaml 하나로 앱, DB, 볼륨, 네트워크를 선언하는 기본 흐름을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

yaml
services:
  app:
    build: .
    ports:
      - "3000:3000"
  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

설명

  • Docker Compose는 여러 컨테이너 앱을 하나의 YAML 파일로 선언하고 함께 올리고 내리는 도구입니다.
  • 서비스, 네트워크, 볼륨을 한 파일에서 관리할 수 있어, 여러 docker run 명령을 손으로 조합할 필요가 줄어듭니다.
  • docker compose up은 필요한 이미지 빌드, 네트워크 생성, 볼륨 생성, 컨테이너 실행을 한 번에 처리합니다.
  • 같은 compose.yaml을 코드 저장소에 함께 넣어 두면, 팀원도 같은 멀티컨테이너 구성을 쉽게 재현할 수 있습니다.
  • Dockerfile이 "이미지를 어떻게 만들까"에 대한 파일이라면, Compose는 "여러 컨테이너를 어떻게 함께 돌릴까"에 대한 파일입니다.

짧은 예제

bash
docker compose up -d --build
docker compose ps
docker compose down

빠른 정리

요소역할
services실행할 컨테이너 정의
buildDockerfile로 이미지 빌드
image기존 이미지 사용
volumes영속 저장소 정의
docker compose up/down전체 스택 시작과 종료

주의할 점

Compose는 여러 컨테이너를 편하게 묶어 주지만, 서비스 하나가 왜 필요한지와 네트워크, 데이터 경계는 여전히 설계해야 합니다. 편의성이 곧 구조 설계를 대신해 주는 것은 아닙니다.

참고 링크

2 sources