콘텐츠로 이동

Docker / Docker Compose

컨테이너로 환경 일관성·이식성 확보. 이미지는 레이어 구조라 변경 레이어만 갱신.

1. 왜 Docker

  • 컨테이너화: 프레임워크/버전 고정, 로컬 환경 영향 없이 독립 실행
  • 이식성: 새 서버에 일일이 설치 없이 이미지로 동일 환경
  • 성능: VM과 달리 호스트 OS 공유 → 가볍고 빠름, 모듈별 개별 확장 가능

2. Docker Compose 구성 요소

  • Services — 컨테이너 1개(이미지·포트·env·볼륨)
  • Networks — 동일 네트워크 내 서비스 간 통신
  • Volumes — 데이터 저장/공유
  • Environment — 비밀번호 등은 ${VAR} 플레이스홀더 + .env 주입 (평문 금지)

3. Prod 서버 컨테이너 (구조만)

docker network create dedu-net 위에:

컨테이너 이미지 포트 비고
dedu-redis redis:7.2 (내부) --maxmemory 64mb, allkeys-lru, --save ""
dedu-grafana grafana/grafana:10.4.3 3000 -v /opt/grafana
dedu-loki grafana/loki:2.9.8 3100 volume loki-data, alias loki
(spring) ECR 이미지 8080 SPRING_PROFILES_ACTIVE=prod

시크릿(REDIS_PASSWORD, GF admin password 등)은 raw prod 서버 내부 docker 구조에 REDACTED. 본 페이지엔 값 없음.

4. 관련