기타
docker compose 기본개념
content0474
2024. 12. 10. 10:38
Docker Compose는 Docker 컨테이너를 사용하여 여러 애플리케이션을 정의하고 실행할 수 있도록 돕는 도구
Compose는 컨테이너 정의를 하나의 파일에 작성하고 명령어 한 줄로 여러 컨테이너를 실행하거나 중단
1. 주요 특징
- 멀티 컨테이너 애플리케이션 관리
여러 컨테이너를 한꺼번에 정의하고 실행 가능 - YAML 파일 기반 설
docker-compose.yml 파일에 애플리케이션 스택을 정의 - 종속성 관리
컨테이너 간의 네트워크 및 의존 관계를 쉽게 설정 - 명령어 단순화
docker compose up으로 모든 컨테이너를 실행하고,
docker compose down으로 한 번에 종료 및 정리 가능
2. Docker Compose의 구조
- 정의 (Define)
docker-compose.yml 파일에서 애플리케이션의 서비스, 네트워크, 볼륨 등을 정의 - 빌드(Build) 및 실행(Run)
정의한 내용을 기반으로 이미지를 빌드하고 컨테이너를 실행 - 제어(Control)
컨테이너의 시작, 종료, 로그 확인, 상태 확인 등을 명령어로 제어
3. docker-compose.yml 파일 예제
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
database:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: test_db
ports:
- "3306:3306"
설명:
- version: Compose 파일의 스펙 버전
- services: 컨테이너를 정의하는 섹션
- web: nginx 컨테이너 정의
- database: mysql 컨테이너 정의
- ports: 호스트와 컨테이너 간의 포트 매핑
- volumes: 로컬 파일을 컨테이너 내부와 연결
- environment: 컨테이너 환경 변수를 설정
4. 주요 명령어
- Compose 실행
- `docker compose up`
- -d: 백그라운드 실행. (docker compose up -d)
- Compose 종료
- `docker compose down`
- 네트워크, 컨테이너, 볼륨 제거
- 상태 확인
- `docker compose ps`
- 로그 확인
- `docker compose logs`
5. Docker Compose의 장점
- 개발 환경에서 편리함: 여러 컨테이너를 정의 및 실행하는 과정을 단순화
- 이식성: 동일한 docker-compose.yml 파일을 통해 다른 환경에서도 동일한 애플리케이션 실행 가능
- 자동화된 워크플로우의존성을 쉽게 설정하고 관리할 수 있어 빠른 배포가 가능