728x90
반응형
[88] 볼륨으로 MongoDB에 데이터 지속성 추가하기
MongoDB 컨테이너에 데이터 지속성과 보안 추가하기
문제 인식
- MongoDB 컨테이너 중지/제거 시 모든 데이터 손실
- 데이터베이스 접근에 보안 제한 없음
데이터 지속성 추가
볼륨 설정
docker run --name mongodb -v data:/data/db --rm -d --network goals-net mongo
- 명명된 볼륨 data 사용
- MongoDB 내부 데이터 경로(/data/db)에 연결
- 컨테이너가 제거되어도 데이터 유지
작동 원리
- 첫 실행: Docker가 볼륨 생성, 데이터 저장
- 재실행: 기존 볼륨의 데이터 로드
- 결과: 컨테이너 생명주기와 독립적인 데이터 유지
접근 제한 설정
환경변수를 통한 인증 설정
docker run --name mongodb \
-v data:/data/db \
--rm -d \
--network goals-net \
-e MONGO_INITDB_ROOT_USERNAME=username \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongo
백엔드 연결 문자열 수정
- 기존: mongodb://mongodb:27017/course-goals
- 변경: mongodb://username:password@mongodb:27017/course-goals?authSource=admin
- 형식: mongodb://사용자명:비밀번호@호스트:포트/데이터베이스?authSource=admin
주의사항
- authSource=admin 쿼리 파라미터 필수
- 사용자 인증 정보 변경 시 백엔드 코드도 함께 수정 필요
- 인증 정보 변경 후 이미지 재빌드 필요
적용 결과
- 컨테이너 재시작 후에도 데이터 유지
- 인증되지 않은 접근 차단
- 보안이 강화된 데이터베이스 환경 구성
이러한 설정으로 MongoDB 컨테이너는 데이터 지속성과 보안성을 모두 갖추게 됩니다.
참고
728x90
반응형
'강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글
[90] 바인드 마운트로 React 컨테이너에 대한 라이브 소스 코드 업데이트하기 (0) | 2025.03.10 |
---|---|
[89] NodeJS 컨테이너의 볼륨, 바인딩 마운트 및 폴리싱 (Polishing) (0) | 2025.03.09 |
[86] 효율적인 컨테이너 간 통신을 위한 Docker 네트워크 추가하기 (0) | 2025.03.08 |
[81-85] Docker로 다중 컨테이너 애플리케이션 구축하기 (0) | 2025.03.08 |
[72-80] Docker 컨테이너 통신의 세 가지 방식과 솔루션 (0) | 2025.03.03 |
댓글