[TIL] Docker Compose,Docker Replica-2025.8.19
2025. 8. 28. 15:56ㆍ대외활동/인공지능사관학교
728x90
반응형
SMALL

Docker Compose
1. 핵심 개념
- Docker Compose란?
- 여러 개의 컨테이너(서비스)를 YAML 파일(docker-compose.yml) 로 정의하고 한 번에 실행·관리할 수 있는 도구.
- 단일 호스트(서버) 안에서 컨테이너 환경을 일관되게 올리고 내릴 때 사용.
- 매번 docker run 명령어로 옵션을 일일이 붙이지 않아도 되며, 선언형 방식으로 재현 가능.
- Compose의 주요 특징
- 서비스 정의: services: 블록 안에서 웹, DB, 캐시 등 각 컨테이너 정의.
- 네트워크 관리: 컨테이너 간 통신 네트워크를 자동 생성.
- 볼륨 관리: 데이터의 지속성을 위해 볼륨 선언 가능.
- 환경 변수: .env 파일과 연동하여 설정값 관리.
- 일괄 관리: up, down, stop, restart 등으로 전체 컨테이너 제어.
2. 명령어 정리
- 서비스 실행→ 백그라운드에서 모든 컨테이너 실행.
docker compose up -d
- 서비스 종료→ 실행 중인 컨테이너, 네트워크, 볼륨 종료 및 제거.
docker compose down
- 로그 확인
docker compose logs -f
- 특정 서비스 실행/중지
docker compose stop web
docker compose start web
- 서비스 스케일링→ web 컨테이너를 3개 실행.
docker compose up -d --scale web=3
3. 예시: docker-compose.yml
version: '3.8'
services:
web:
image: nginx:latest
ports: - "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
→ 웹 서버(Nginx)와 데이터베이스(MySQL)를 한 번에 실행 가능.
4. 오늘 배운 점
- Compose는 개발 환경에서 빠르게 멀티 컨테이너 환경을 구성할 때 매우 유용하다.
- YAML 파일로 인프라를 코드(IaC)처럼 정의할 수 있어서, 협업 시 재현성과 일관성을 보장.
- 단일 호스트에 국한되므로, 여러 서버 분산 관리가 필요할 때는 Docker Swarm이나 Kubernetes로 넘어가야 함.
Docker Replica
1. Replica의 개념
- Replica란?
- 특정 서비스(컨테이너)를 여러 개 복제해서 실행한 인스턴스.
- 서비스의 확장성(Scalability) 과 고가용성(High Availability) 을 보장하기 위해 사용.
- 즉, 컨테이너 하나가 죽어도 다른 Replica가 동일한 기능을 대신 수행할 수 있음.
2. Replica가 중요한 이유
- 부하 분산 (Load Balancing)
- 여러 개의 Replica가 동시에 요청을 처리 → 트래픽 증가에도 안정적으로 대응 가능.
- 장애 대응 (Fault Tolerance)
- 하나의 컨테이너가 죽어도 나머지 Replica들이 서비스 유지.
- 서비스 확장 (Scalability)
- 필요할 때 Replica 수를 늘리거나 줄여서 탄력적으로 리소스 관리 가능.
3. Docker Swarm에서 Replica 사용
서비스 생성 시 --replicas 옵션으로 지정:→ nginx 컨테이너를 3개 Replica로 실행.
docker service create --name web --replicas 3 -p 80:80 nginx
- 실행 중인 서비스 Replica 확인:
docker service ps web
- 실행 중인 Replica 수 조정 (스케일링):→ 기존 3개에서 5개로 늘림.
docker service scale web=5
4. Docker Compose에서 Replica 사용
- docker-compose.yml에서 deploy.replicas 옵션 활용 (단, Swarm 모드에서만 동작):
version:'3.8'
services:
web:
image:nginx:latest
deploy:replicas:3
update_config:parallelism:1
delay:10s
→ web 서비스를 3개의 Replica로 배포하고, 업데이트 시 하나씩 교체.
5. 오늘 배운 점
- Replica = 같은 컨테이너를 여러 개 복사 실행한 것.
- 운영 환경에서는 Replica를 통해 무중단 서비스와 안정성 확보가 핵심.
- docker-compose의 단순 실행에서는 scale 옵션, swarm에서는 replicas를 통해 구현 가능.
- Kubernetes에서는 Replica를 Pod 단위로 관리 (→ Deployment의 replicas 필드).
👉 정리하면:
- 단일 컨테이너 = 취약한 서비스
- Replica 여러 개 = 안정적이고 확장 가능한 서비스
728x90
반응형
LIST
'대외활동 > 인공지능사관학교' 카테고리의 다른 글
| [학습]IT·AI 업계 동향 파악.with GPT/Notion-인공지능사관학교6기 (2) | 2025.08.28 |
|---|---|
| [TIL]Kubernetes Namespace, BusyBox, ConfigMap, Secret-2025.8.28 (1) | 2025.08.28 |
| [TIL]Docker Swarm-2025.08.18 (0) | 2025.08.28 |
| [AI Crew][특강] 클라우드 시대의 준비 – 취업 전략부터 네이버 클라우드 동향까지/네이버클라우드특강3 (1) | 2025.08.28 |
| [TIL] Kubernetes Pod 학습 정리-2025.8.27 (0) | 2025.08.27 |