728x90
목차
- Docker Compose 소개
- 설치 및 환경 설정
- docker-compose.yml 파일 작성법
- 주요 명령어
- 실전 예제
- 베스트 프랙티스
- 문제 해결 가이드
1. Docker Compose 소개
Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다. YAML 파일을 사용하여 애플리케이션의 서비스, 네트워크, 볼륨을 구성하고, 단일 명령으로 모든 서비스를 생성하고 시작할 수 있습니다.
주요 특징
- 단일 호스트에서 여러 격리된 환경 실행
- 컨테이너 생성 시 볼륨 데이터 보존
- 변경된 컨테이너만 재생성
- 환경 변수 지원 및 구성 관리
2. 설치 및 환경 설정
Linux 설치
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Windows 및 macOS
Docker Desktop을 설치하면 Docker Compose가 함께 설치됩니다.
3. docker-compose.yml 파일 작성법
기본 구조
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- frontend
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
networks:
- backend
volumes:
db_data:
networks:
frontend:
backend:
주요 설정 항목
services
각 컨테이너의 구성을 정의합니다.
- image: 사용할 도커 이미지
- build: Dockerfile 위치
- ports: 포트 매핑
- volumes: 볼륨 마운트
- environment: 환경 변수 설정
- depends_on: 서비스 의존성 정의
- networks: 사용할 네트워크
volumes
데이터 영속성을 위한 볼륨을 정의합니다.
networks
서비스 간 통신을 위한 네트워크를 정의합니다.
4. 주요 명령어
기본 명령어
# 서비스 시작
docker-compose up
# 백그라운드에서 서비스 시작
docker-compose up -d
# 서비스 중지
docker-compose down
# 서비스 상태 확인
docker-compose ps
# 서비스 로그 확인
docker-compose logs
# 특정 서비스만 재시작
docker-compose restart service_name
5. 실전 예제
WordPress 설치 예제
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
6. 베스트 프랙티스
구성 관리
- 환경 변수는 .env 파일 사용
- 민감한 정보는 환경 변수로 관리
- 서비스 이름은 명확하게 지정
- 버전 관리 시스템 사용
성능 최적화
- 적절한 볼륨 마운트 사용
- 네트워크 최적화
- 이미지 크기 최소화
보안
- 최소 권한 원칙 준수
- 보안 네트워크 구성
- 정기적인 업데이트 수행
7. 문제 해결 가이드
일반적인 문제
- 컨테이너가 시작되지 않는 경우
- 로그 확인: docker-compose logs
- 포트 충돌 확인
- 볼륨 권한 확인
- 네트워크 연결 문제
- 네트워크 설정 확인
- DNS 설정 확인
- 서비스 의존성 확인
- 볼륨 마운트 문제
- 경로 확인
- 권한 설정 확인
- SELinux 설정 확인
디버깅 팁
- 로그 레벨 증가: docker-compose up --verbose
- 컨테이너 내부 확인: docker-compose exec service_name sh
- 설정 확인: docker-compose config
결론
Docker Compose는 복잡한 애플리케이션 스택을 효율적으로 관리할 수 있게 해주는 강력한 도구입니다. 이 가이드를 통해 Docker Compose의 기본 개념부터 고급 기능까지 이해하고 활용할 수 있습니다. 지속적인 학습과 실습을 통해 더 효율적인 컨테이너 관리가 가능할 것입니다.
728x90
'IT 개발 > 클라우드' 카테고리의 다른 글
[쿠버네티스] 쿠버네티스 핵심 개념 마스터하기: 실전 가이드 (87) | 2025.02.04 |
---|---|
[쿠버네티스] 도커에서 쿠버네티스로: 컨테이너 오케스트레이션의 시작 (56) | 2025.02.03 |
[도커] 도커의 역사 (5) | 2025.02.01 |
[도커] 도커 - 현대 애플리케이션 개발의 혁명 (3) | 2025.02.01 |
[도커] Docker 네트워크 완벽 가이드 (2) | 2025.02.01 |