도커를 활용한 개발 환경 구성은 이론보다 실제 예제를 통해 이해하는 것이 훨씬 효과적입니다. 특히 Colima 기반 도커 환경에서는 docker-compose를 활용해 여러 서비스를 묶어 실행하는 방식이 실무에서 가장 많이 사용되고 있습니다.
Node.js / Spring / Django 예제 docker-compose.yml을 주제로, 각 프레임워크별로 최소 구성부터 실행 흐름을 정리했습니다.

실습 환경 공통 조건
- macOS + Colima 기반 도커 환경
- Docker CLI 및 docker compose 사용 가능 상태
- 각 프로젝트는 독립 실행 기준
아래 예제들은 모두 docker compose up 명령으로 바로 실행 가능하도록 구성돼 있습니다.
1) Node.js 예제 docker-compose.yml
Node.js는 도커 실습에서 가장 많이 사용되는 예제입니다. 간단한 웹 서버를 기준으로 구성했습니다.
프로젝트 구조 예시
node-app/
├─ Dockerfile
├─ package.json
├─ index.js
└─ docker-compose.yml
Dockerfile 예제
FROM node:20-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "index.js"]
docker-compose.yml
version: "3.9"
services:
node-app:
build: .
ports:
- "3000:3000"
volumes:
- ./index.js:/app/index.js
이 구성은 소스 코드 변경 시 컨테이너를 재빌드하지 않아도 바로 반영되는 구조입니다.
2) Spring Boot 예제 docker-compose.yml
Spring Boot는 JVM 기반 특성상 Node.js보다 리소스 사용량이 높은 편입니다. 따라서 기본적인 메모리 설정을 함께 고려하는 것이 좋습니다.
프로젝트 구조 예시
spring-app/
├─ Dockerfile
├─ build.gradle
├─ src/
└─ docker-compose.yml
Dockerfile 예제
FROM eclipse-temurin:17-jdk-alpine
WORKDIR /app
COPY build/libs/app.jar app.jar
ENTRYPOINT ["java","-jar","/app/app.jar"]
docker-compose.yml
version: "3.9"
services:
spring-app:
image: spring-app:local
build: .
ports:
- "8080:8080"
environment:
- JAVA_OPTS=-Xms256m -Xmx512m
Spring Boot 컨테이너는 메모리 옵션을 명시하지 않으면 로컬 환경에서 불필요한 리소스를 점유할 수 있습니다.
3) Django 예제 docker-compose.yml
Django는 Python 기반 웹 프레임워크로, 도커 실습에서는 DB와 함께 구성하는 경우가 많습니다. 아래 예제는 PostgreSQL을 함께 사용하는 구성입니다.
프로젝트 구조 예시
django-app/
├─ Dockerfile
├─ requirements.txt
├─ manage.py
├─ app/
└─ docker-compose.yml
Dockerfile 예제
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python","manage.py","runserver","0.0.0.0:8000"]
docker-compose.yml
version: "3.9"
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_USER: django
POSTGRES_PASSWORD: django
POSTGRES_DB: django_db
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
DB 데이터는 named volume으로 분리해 컨테이너 재시작 시에도 유지되도록 구성했습니다.
공통 실행 명령어
# 컨테이너 실행
docker compose up -d
# 실행 상태 확인
docker ps
# 로그 확인
docker compose logs -f
# 종료 및 정리
docker compose down
프레임워크별 구성 차이 요약
| 구분 | Node.js | Spring Boot | Django |
|---|---|---|---|
| 실행 속도 | 빠름 | 보통 | 보통 |
| 리소스 사용 | 낮음 | 높음 | 중간 |
| DB 연계 | 선택 | 선택 | 필수적 |
FAQ
Q1. Colima 환경에서도 docker-compose 성능 문제는 없나요?
A. 기본 실습 수준에서는 큰 문제 없이 사용 가능하며, 파일 동기화 범위를 줄이면 체감 성능이 개선됩니다.
Q2. 예제 그대로 실무에 사용해도 되나요?
A. 구조 이해와 로컬 개발용으로는 충분하지만, 운영 환경에서는 보안·빌드 전략을 별도로 고려해야 합니다.
Q3. 세 프레임워크를 하나의 compose로 묶어도 되나요?
A. 가능하지만 학습 목적이라면 프레임워크별로 분리해 구성하는 것이 관리에 유리합니다.
Node.js / Spring / Django 예제 docker-compose.yml은 각 개발 환경에서 도커 활용 방식을 이해하는 데 효과적인 출발점입니다. Colima 기반 맥북 개발환경에서도 위 예제들을 그대로 활용할 수 있으며, 프로젝트 규모에 맞게 점진적으로 확장해 나가는 것이 좋습니다.
'IT 테크 > 기타' 카테고리의 다른 글
| 개발자 생산성 도구 비교, 실제 현업에서 쓰이는 도구 (0) | 2026.01.26 |
|---|---|
| 노트북 발열 문제 해결 방법, 성능 저하를 막는 방법 (0) | 2026.01.25 |
| Colima 도커 개발환경 파일 동기화·볼륨·리소스 튜닝 팁 (0) | 2026.01.24 |
| 맥북에서 Colima로 도커 개발환경 세팅하기, Docker Desktop 없이 구축하는 가이드 (0) | 2026.01.23 |
| 맥북 vs 윈도우 개발 환경 비교, 개발자에게 어떤 선택이 유리할까요? (0) | 2026.01.22 |
