728x90
반응형
🧐 컨테이너의 데이터는 어디에 저장될까?
- 컨테이너 기반의 애플리케이션을 구축하다 보면, "데이터는 어디에 저장하지?"라는 질문이 떠오른다. Docker 컨테이너는 가볍고, 빠르게 생성되고 삭제된다. 그럼 그 안의 생성된 데이터는 어떻게 영구적으로 보존할 수 있을까?
- 데이터베이스 애플리케이션을 도커로 실행할 때, 데이터가 사라지지 않도록 보존하려면 어떻게 해야할까?
- 도커 컨테이너는 본질적으로 휘발성 데이터 저장 방식을 따르기 때문에, 데이터를 영구적으로 저장하거나 컨테이너 간에 공유해야 할 때는 도커 볼륨을 사용하는 것이 좋다.
도커 볼륨이 필요한 이유
도커 컨테이너는 애플리케이션을 실행할 수 있는 가벼운 프로세스로, 필요한 경우 데이터를 메모리나 파일 시스템에 저장할 수 있다. 그러나 도커 컨테이너는 휘발성 특성을 가지며, 삭제되면 그 안에 있던 모든 데이터도 함께 사라진다. 따라서 데이터 영속성을 유지해야 하는 경우 문제가 발생한다.
- 컨테이너는 프로세스: 도커 컨테이너는 프로세스이기 때문에 메모리에 데이터를 저장하거나 파일 시스템에 기록할 수 있지만, 데이터는 컨테이너의 수명과 밀접하게 연결되어 있다.
- 휘발성 데이터: 컨테이너가 삭제되면 해당 컨테이너가 소유하고 있던 모든 데이터도 삭제된다.
- 데이터 영속성 부족: 컨테이너 자체적으로는 영속성을 제공하지 않기 때문에, 컨테이너가 삭제되더라도 데이터를 유지하려면 별도의 저장소가 필요하다.
❗️데이터를 영구적으로 보존하고, 필요시 다른 컨테이너에서도 접근할 수 있도록 도커 볼륨을 사용한다.❗️
데이터의 영구 저장과 컨테이너 간 공유를 도와주는 방식
1) Bind Mount
- 도커 컨테이너의 파일 시스템을 호스트 컴퓨터의 특정 디렉터리와 직접 연결하는 방식
- 호스트 컴퓨터의 파일 시스템과 컨테이너가 연결되어 실시간으로 파일을 공유한다.
- 데이터가 호스트 컴퓨터에 저장되므로, 도커 엔진을 사용할 필요 없이 바로 데이터에 접근할 수 있다.
2) Volume
- 도커가 자체적으로 관리하는 파일 시스템에 데이터를 저장하는 방식
- 도커 엔진에 의해 관리되므로 사용자는 파일 경로를 명시할 필요가 없으며, 도커는 이를 백그라운드에서 처리한다.
- 이 방식은 다수의 컨테이너 간에 데이터를 공유하거나, 호스트 파일 시스템과의 직접적인 연결을 원치 않을 때 유용하다.
3) Tmpfs Mount
- 데이터를 메모리에만 일시적으로 저장하는 방식
- 데이터를 영구적으로 보존하지 않지만, 디스크 I/O 성능을 최적화해야 하는 경우 유용하다.
- 시스템 메모리를 사용해서 데이터를 빠르게 처리할 수 있으며, 민감한 데이터를 다룰 때 메모리만을 사용한다.
728x90
반응형
'DOCKER' 카테고리의 다른 글
[DOCKER] Docker Volume 실습 - 데이터베이스 데이터 지속성 유지 (0) | 2024.10.17 |
---|---|
[DOCKER] Docker Volume, bind mount, tmpfs 비교 (4) | 2024.10.17 |
[DOCKER] Docker 컨테이너 실습 - Python, Nodejs 파일 컨테이너로 실행 (2) | 2024.10.16 |
[DOCKER] Docker 컨테이너 생성 실습 - Nginx 생성 후 포트 수정 (0) | 2024.10.16 |
[DOCKER] 컨테이너(Container) 관련 명령어 (2) | 2024.10.15 |