Docker Compose

Youngho LEE·2025년 10월 12일
post-thumbnail
  • Dockerfile: “이미지를 어떻게 빌드할지” 정의하는 파일.
  • Docker Compose: 여러 컨테이너의 실행(서비스·네트워크·볼륨)을 한 번에 정의/관리하는 YAML. 개발·테스트·CI 로컬 환경에서 특히 유용.

언제 Docker Compose가 유용한가

  • 백엔드(API) + DB + 캐시(Redis)처럼 멀티 서비스를 한 번에 올리고 내릴 때.
  • 팀원이 레포를 클론 후 한 줄(docker compose up)로 동일 환경 재현해야 할 때.
  • 서비스 간 의존/시작 순서, 프로필(옵션 서비스 on/off), 스케일링 등 실행 전반을 코드로 관리하고 싶을 때.
  • 기본 파일명 compose.yaml/compose.yml을 두고 프로젝트마다 동일한 습관으로 운영하고 싶을 때.
구분DockerfileDocker Compose(Compose 파일)
목적이미지 빌드 정의 (FROM, RUN, COPY, CMD…)멀티 컨테이너 앱 실행 정의(services, networks, volumes)
산출물/범위단일 이미지여러 서비스(컨테이너), 네트워크, 볼륨 등 실행 구성
실행·수명주기docker build 때 사용docker compose up/down/ps/logs 등 실행 관리
스케일/오케스트레이션해당 없음(이미지 수준)up --scale web=3 등 서비스 단위 수평 확장
의존/시작 순서해당 없음depends_on(+ healthcheck 조건)로 제어
파일명Dockerfile기본 compose.yaml(권장)

둘은 “대체”가 아니라 “함께” 쓴다.

  • Compose의 services.<name>.build는 해당 서비스 이미지를 Dockerfile로 빌드한 뒤 그 이미지를 실행합니다. 즉, Dockerfile(빌드) ↔ Compose(실행) 역할 분담입니다.

출처
DockerDocs
DockerDocs

profile
개발자

0개의 댓글