Oh My Algorithm
Concept Guide서비스 그래프 · 선언형

멀티 컨테이너 (Docker Compose)

실제 앱은 컨테이너 하나로 끝나지 않습니다. 웹·API·데이터베이스를 각각 띄우고 네트워크로 잇고 볼륨을 붙이는 일을 `docker run` 여러 번으로 하면 재현이 어렵습니다. Compose 는 이 구성을 YAML 파일 하나에 선언해 두고 `docker compose up` 한 번으로 전체를 세우며, 서비스 이름이 곧 네트워크 상의 호스트 이름이 됩니다.

01 개념 한눈에 보기

Interactive Step-by-Step
Docker Compose · 서비스 그래프
docker compose up · compose.yaml 한 장으로 전체 기동
web
nginx8080:80 노출
depends_on: api
api
build: .DB_HOST=db
depends_on: db
db
postgres포트 노출 없음
pgdata 마운트
compose 전용 네트워크 · 서비스 이름이 곧 호스트 이름
api:3000db:5432api:3000db:5432
볼륨 · pgdatadown 해도 남는다

실제 앱은 컨테이너 하나로 끝나지 않습니다. 웹·API·데이터베이스를 각각 띄우고 서로 잇는 일을 docker run 여러 번으로 하면 재현이 어렵습니다.

Logic Node1 / 9

02 쉽게 이해하기

For Everyone
🔑비유

무대에 배우를 한 명씩 불러 위치를 잡아 주는 대신, 대본에 배치와 등장 순서를 적어 두고 한 번에 무대를 세우는 것과 같습니다.

💡쉽게 말하면

compose 파일에 서비스별 이미지·포트·환경변수·볼륨을 적으면, up 할 때 전용 네트워크를 만들고 각 서비스를 그 안에 띄웁니다.

서비스 이름이 DNS 이름이 되므로 API 는 `db:5432` 로 데이터베이스에 붙습니다.

depends_on 은 기동 순서만 정할 뿐 준비 완료를 보장하지 않아, 실제로는 헬스체크나 재시도를 함께 둡니다.

📍어디에 쓰나
  • 로컬 개발 환경 재현
  • 통합 테스트 환경 구성
  • 여러 서비스의 의존 관계·기동 순서 정의
  • 팀원 간 환경 공유

03 자주 묻는 질문

FAQ
멀티 컨테이너 (Docker Compose)란 무엇인가요?+

실제 앱은 컨테이너 하나로 끝나지 않습니다. 웹·API·데이터베이스를 각각 띄우고 네트워크로 잇고 볼륨을 붙이는 일을 `docker run` 여러 번으로 하면 재현이 어렵습니다. Compose 는 이 구성을 YAML 파일 하나에 선언해 두고 `docker compose up` 한 번으로 전체를 세우며, 서비스 이름이 곧 네트워크 상의 호스트 이름이 됩니다.

멀티 컨테이너 (Docker Compose)은(는) 어디에 사용하나요?+

로컬 개발 환경 재현, 통합 테스트 환경 구성, 여러 서비스의 의존 관계·기동 순서 정의, 팀원 간 환경 공유

멀티 컨테이너 (Docker Compose)를 쉽게 비유하면?+

무대에 배우를 한 명씩 불러 위치를 잡아 주는 대신, 대본에 배치와 등장 순서를 적어 두고 한 번에 무대를 세우는 것과 같습니다.

Guide Progress0%