D: 🚀 도커 컴포즈(Docker Compose)는 여러 개의 컨테이너를 한 번에 관리할 수 있는 강력한 도구예요. 초보자분들을 위해 자주 사용하는 명령어를 모아 체계적으로 정리해봤어요!
🔧 기본 설정 파일 구조 이해하기
docker-compose.yml
파일은 프로젝트의 핵심이에요. 아래는 기본 예시입니다.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: example
📌 주요 섹션:
version
: 컴포즈 파일 버전services
: 실행할 서비스(컨테이너) 목록image
: 사용할 도커 이미지ports
: 포트 매핑 (호스트:컨테이너)environment
: 환경 변수 설정
🚦 기본 명령어 모음
-
서비스 시작하기
docker-compose up -d # 백그라운드 실행
-d
옵션은 데몬 모드(백그라운드 실행)
-
서비스 중지하기
docker-compose down # 컨테이너 정지 및 삭제 docker-compose stop # 컨테이너만 정지
-
상태 확인하기
docker-compose ps # 실행 중인 컨테이너 목록 docker-compose logs -f # 실시간 로그 확인
-
이미지 빌드하기
docker-compose build # Dockerfile 기반 이미지 빌드
⚡ 고급 명령어 활용법
-
특정 서비스만 실행
docker-compose up -d web # web 서비스만 실행
-
서비스 재시작
docker-compose restart web # web 서비스 재시작
-
의존성 있는 서비스 함께 실행
docker-compose up -d --build # 변경사항 반영 후 재빌드
-
환경 변수 파일 사용
docker-compose --env-file .env up -d
🛠️ 문제 해결 명령어
-
컨테이너 접속하기
docker-compose exec web bash # web 서비스에 bash로 접속
-
볼륨 확인
docker-compose volumes ls # 볼륨 목록 확인
-
네트워크 확인
docker-compose network ls # 네트워크 목록 확인
💡 실전 예제: 워드프레스 + MySQL
version: '3.8'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
volumes:
- db_data:/var/lib/mysql
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
volumes:
db_data:
📌 실행 방법:
docker-compose up -d
입력- 브라우저에서
http://localhost:8000
접속
🎯 팁 & 주의사항
docker-compose.yml
파일은 항상 프로젝트 루트에 위치--build
옵션으로 이미지 재빌드 가능docker-compose down -v
로 볼륨까지 완전 삭제- 버전 호환성 확인 필수 (특히 Docker Engine 버전)
💬 이 치트시트를 프린트해서 모니터 옆에 붙여두시면 작업 효율이 200% 올라갈 거예요! 도커 컴포즈로 멀티 컨테이너 관리가 쉬워지는 걸 느껴보세요 ✨
더 궁금한 점이 있다면 댓글로 질문해주세요! 👇