피드로 돌아가기
Dev.toDevOps
원문 읽기
Docker Volume Mount를 통한 Ephemeral Storage 한계 극복 및 데이터 영속성 확보
I Deployed Netflix's Web Server in 30 Seconds (And So Can You) - Docker Project 1
AI 요약
Context
컨테이너 기반 배포 시 애플리케이션과 의존성을 패키징하여 환경 일관성을 확보함. 하지만 컨테이너 내부 파일 시스템의 Ephemeral 특성으로 인해 런타임 중 생성되거나 수정된 데이터가 컨테이너 삭제 시 함께 소멸하는 아키텍처적 한계 존재.
Technical Solution
- Nginx 이미지를 활용한 Web Server 독립 환경 구축으로 의존성 충돌 해결
- Detached Mode(-d) 및 Port Mapping(-p) 설계를 통한 호스트-컨테이너 간 네트워크 통신 경로 확보
- docker cp를 통한 런타임 파일 주입 시 데이터 휘발성 확인으로 Persistence 필요성 검증
- Host-Container 간 디렉터리를 동기화하는 Volume Mount(-v) 기법 적용
- 호스트의 물리적 경로를 컨테이너 내 /usr/share/nginx/html 경로에 바인딩하여 데이터 생명주기를 컨테이너 외적으로 분리
- 컨테이너 재생성 시에도 외부 저장소의 상태를 유지하는 Stateless Application 구조 설계
실천 포인트
1. 컨테이너 내부의 데이터 변경 사항이 영구적으로 유지되어야 하는지 확인
2. DB 데이터, 사용자 업로드 파일 등 State-full 데이터 저장소에 Volume Mount 적용 여부 검토
3. 호스트 경로와 컨테이너 내부 경로 간의 정확한 매핑 및 권한 설정 확인
4. Stateless한 컨테이너 설계와 State-full한 외부 저장소 분리 원칙 준수