홈/엔지니어/Docker / 컨테이너/Docker 컴포즈로 개발 환경 구축하기…
Docker / 컨테이너초급ubuntumacoswindowsdockercompose개발환경

Docker 컴포즈로 개발 환경 구축하기

Docker Compose를 사용해 일관된 개발 환경을 구성하는 실전 패턴. 볼륨, 네트워크, 환경변수 관리까지.

목차
  1. Docker Compose 기본 구조
  2. 자주 쓰는 Compose 명령어
  3. 환경변수 파일 분리
  4. 개발/프로덕션 설정 분리

Docker Compose 기본 구조

YAML
# docker-compose.yml
version: "3.9"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules   # 컨테이너 node_modules 보호
    environment:
      - NODE_ENV=development
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: dev
      POSTGRES_PASSWORD: devpass
      POSTGRES_DB: myapp
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dev"]
      interval: 5s
      timeout: 3s
      retries: 5

  redis:
    image: redis:7-alpine
    command: redis-server --save 60 1

volumes:
  pg_data:

자주 쓰는 Compose 명령어

Bash
docker compose up -d              # 백그라운드 실행
docker compose up --build         # 이미지 재빌드 후 실행
docker compose down -v            # 컨테이너 + 볼륨 삭제
docker compose logs -f app        # 특정 서비스 로그 팔로우
docker compose exec app bash      # 컨테이너 셸 접속
docker compose ps                 # 서비스 상태 확인

환경변수 파일 분리

Bash
# .env (git 제외)
DB_PASSWORD=secretpass
API_KEY=abc123

# docker-compose.yml
services:
  app:
    env_file:
      - .env

개발/프로덕션 설정 분리

Bash
# docker-compose.override.yml (개발용, git 제외 가능)
services:
  app:
    volumes:
      - .:/app
    command: npm run dev
Bash
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
#docker#compose#개발환경#container
편집 안내 · Editorial Note

AI 도구가 초안 작성에 사용될 수 있습니다. 명령어의 실행 여부와 검증 환경은 각 가이드에 기재된 근거를 확인하세요. 적용 전 사용 중인 버전의 공식 문서를 확인하고, 오류는 이메일로 알려주세요. 이메일로 제보

주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)Docker 공식 문서 ↗

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.