기본 패턴
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 | 실행할 컨테이너 정의 |
build | Dockerfile로 이미지 빌드 |
image | 기존 이미지 사용 |
volumes | 영속 저장소 정의 |
docker compose up/down | 전체 스택 시작과 종료 |
주의할 점
Compose는 여러 컨테이너를 편하게 묶어 주지만, 서비스 하나가 왜 필요한지와 네트워크, 데이터 경계는 여전히 설계해야 합니다. 편의성이 곧 구조 설계를 대신해 주는 것은 아닙니다.
참고 링크
2 sources