개요

Docker Compose는 여러 컨테이너로 구성된 애플리케이션을 docker-compose.yml 파일 하나로 정의하고 실행하는 도구.


기본 사용법

# 실행
docker compose up -d
 
# 특정 파일 지정
docker compose -f docker-compose.yml up -d
 
# 중지
docker compose down
 
# 로그 확인
docker compose logs -f
 
# 특정 서비스만 재시작
docker compose restart <service>
 
# 빌드 후 실행
docker compose up --build -d

docker-compose.yml 구조

version: '3.8'
 
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db
    environment:
      - ENV=production
 
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - postgres_data:/var/lib/postgresql/data
 
volumes:
  postgres_data:
 
networks:
  default:
    driver: bridge

주요 옵션

옵션설명
image사용할 Docker 이미지
buildDockerfile로 이미지 빌드
ports호스트:컨테이너 포트 매핑
volumes볼륨 마운트
environment환경 변수
depends_on의존 서비스 (시작 순서)
networks네트워크 설정
restart재시작 정책 (always, unless-stopped)
profiles선택적 서비스 그룹핑

vs Docker Swarm / Kubernetes

항목ComposeSwarmKubernetes
목적단일 호스트 개발/운영멀티 호스트 클러스터대규모 클러스터
복잡도낮음중간높음
용도로컬 개발, 소규모 서비스중소 규모엔터프라이즈

관련 항목