Docker 스토리지와 볼륨 관리
1. 마운트 포인트의 개념
- 리눅스 파일 시스템은 여러 저장소를 단일 트리로 통합.
- 마운트 포인트는 특정 위치에 데이터를 연결하며, 컨테이너가 고유한 파일 트리를 가짐.
2. 컨테이너 스토리지 유형
- Bind Mounts
- 호스트 파일 시스템의 특정 위치를 컨테이너 내부와 공유.
- 단점: 컨테이너 휴대성 저하 및 경로 충돌 위험.
- 명령어 예시:
docker run --mount type=bind,src=/host/path,dst=/container/path image_name
- In-Memory Storage (tmpfs)
- RAM 기반 임시 저장소.
- 컨테이너 종료 시 데이터 삭제.
- 민감 데이터나 임시 데이터 저장에 유용.
- 명령어 예시:
docker run --mount type=tmpfs,dst=/tmp image_name
- Docker Volumes
- Docker가 관리하는 스토리지.
- 바인드 마운트보다 이식성과 관리 용이성이 높음.
- 명령어 예시:
docker volume create my_volume docker run --mount type=volume,src=my_volume,dst=/data image_name
3. 볼륨 관리의 장점
- 컨테이너 독립적 데이터 관리 가능.
- 볼륨 데이터는 컨테이너의 수명과 별개로 유지.
- 여러 컨테이너 간 안전한 데이터 공유.
- 데이터 백업 및 복구 용이.
4. 공유 및 고급 볼륨 활용
- 공유 마운트 포인트
- 여러 컨테이너에서 동일 데이터 접근.
- Bind Mount보다 Docker Volumes를 사용 권장.
- 명령어 예시:
docker run --name container1 --mount type=volume,src=my_volume,dst=/shared docker run --name container2 --mount type=volume,src=my_volume,dst=/shared
- 익명 볼륨 및 Volumes-From 플래그
- 익명 볼륨: 컨테이너 종료 시 제거.
- Volumes-From: 다른 컨테이너의 마운트 정의 상속.
- 명령어 예시:
docker run --name source_container --mount type=volume,dst=/data image_name docker run --volumes-from source_container image_name
- 읽기 전용 마운트
- 보안 강화를 위해 특정 볼륨을 읽기 전용으로 설정.
- 명령어 예시:
docker run --mount type=bind,src=/host/path,dst=/container/path,readonly image_name
5. 데이터 지속성과 복구 예시
- Cassandra 예제:
- 볼륨에 데이터 저장 후 삭제/복구 테스트.
- 명령어 흐름:
- 볼륨 생성:
docker volume create cass-shared
- 컨테이너 실행 및 데이터 수정:
docker run --volume cass-shared:/var/lib/cassandra/data cassandra:4.0.7
- 복구 확인:
docker run --volume cass-shared:/var/lib/cassandra/data cassandra:4.0.7
- 볼륨 생성:
6. 볼륨 정리 및 유지보수
- 불필요한 볼륨 삭제:
docker volume prune --force
- 특정 라벨 기준 볼륨 삭제:
docker volume prune --filter label=example=value --force
7. 고급 스토리지와 플러그인
- Docker는 다양한 스토리지 플러그인 지원.
- 외부 스토리지 연동 및 클라우드 솔루션 사용 가능.
- 예: AWS, Azure, Ceph 등과 통합.
8. 핵심 요약
- Docker 볼륨은 컨테이너와 데이터의 관심사를 분리하며 데이터의 지속성을 보장.
- 다양한 스토리지 옵션을 통해 요구사항에 맞는 유연한 데이터 관리 가능.
- 프로덕션 환경에서는 Docker Volumes와 플러그인을 활용하여 안전하고 효율적인 데이터 관리를 구현.
'Docker' 카테고리의 다른 글
도커 인 액션 5장 (0) | 2024.12.04 |
---|---|
볼륨(Volume) (0) | 2024.12.04 |
도커 인 액션 2장 (0) | 2024.12.04 |
도커 인 액션 1장 (0) | 2024.12.04 |
도커 인 액션 3장 (0) | 2024.12.04 |