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. 관련¶
- teams/engineering/guides/cicd — 이미지 빌드/배포
- teams/engineering/infra/observability — Grafana/Loki/Prometheus
- teams/engineering/infra/architecture