D:
도커 컴포즈(Docker Compose)는 멀티 컨테이너 애플리케이션을 정의하고 실행하기 위한 필수 도구입니다. ✨ 복잡한 개발 환경 설정을 단순화하는 YML 파일 작성법부터 실무에서 바로 적용할 수 있는 예제까지, 초보자도 쉽게 따라할 수 있는 가이드를 준비했습니다. 웹 서버, 데이터베이스, 캐시 시스템을 한 번에 띄워야 한다면? 지금 바로 시작해보세요!
🔧 Docker Compose 기본 구조 이해하기
모든 docker-compose.yml 파일은 다음 3가지 핵심 요소로 구성됩니다:
version: "3.8" # Compose 파일 버전
services: # 컨테이너 서비스 정의
web:
image: nginx:latest
volumes: # 데이터 영속성 관리
db_data:
- version: 호환되는 Docker Engine 버전 지정 (3.x 권장)
- services: 실행할 각 컨테이너의 설정 그룹
- volumes/networks: 컨테이너 간 공유 자원 관리
🚀 실전 예제로 배우는 YML 작성법
Case 1: 웹 서버 + MySQL 연동
version: "3.8"
services:
frontend:
image: nginx:alpine
ports:
- "80:80"
depends_on:
- backend
backend:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
📌 핵심 옵션 설명:
옵션 | 기능 |
---|---|
ports | 호스트-컨테이너 포트 매핑 (호스트:컨테이너) |
depends_on | 서비스 시작 순서 제어 |
environment | 컨테이너 환경 변수 설정 |
⚠️ 주의해야 할 3가지 실수
- 들여쓰기 오류: YML은 공백 2칸으로 계층 구분 (탭 사용 금지)
- 버전 혼동: Docker Engine 버전과 호환되는 Compose 버전 선택
- 리소스 과할당: CPU/MEMORY 제한 없이 개발하면 호스트 시스템 불안정
💡 고급 활용 팁
.env
파일로 민감정보 분리 관리docker-compose.override.yml
로 환경별 설정 차이화- Healthcheck으로 서비스 상태 모니터링
## 결론: 이제 당신의 개발 환경이 달라집니다 ##
Docker Compose YML 파일은 개발·테스트·운영 환경의 일관성을 보장하는 마법의 레시피입니다. 🎯 오늘 배운 기본 템플릿을 확장해 자신만의 개발 스택을 구축해보세요. ‘docker-compose up -d’ 한 줄이면 모든 서비스가 준비됩니다! 혹시 특정 기술 스택에 대한 Compose 예제가 필요하다면 댓글로 요청해주세요.
✍️ 행동 유도: 지금 바로 VS Code를 열고 첫 docker-compose.yml 파일을 작성해보세요! #Docker #DevOps