본문 바로가기
DOCKER

[DOCKER] Docker Volume - 데이터 영속성 관리를 위한 도커 볼륨

by sum_mit45 2024. 10. 16.
728x90
반응형

🧐 컨테이너의 데이터는 어디에 저장될까?

  • 컨테이너 기반의 애플리케이션을 구축하다 보면, "데이터는 어디에 저장하지?"라는 질문이 떠오른다. Docker 컨테이너는 가볍고, 빠르게 생성되고 삭제된다. 그럼 그 안의 생성된 데이터는 어떻게 영구적으로 보존할 수 있을까? 
  • 데이터베이스 애플리케이션을 도커로 실행할 때, 데이터가 사라지지 않도록 보존하려면 어떻게 해야할까?
  • 도커 컨테이너는 본질적으로 휘발성 데이터 저장 방식을 따르기 때문에, 데이터를 영구적으로 저장하거나 컨테이너 간에 공유해야 할 때는 도커 볼륨을 사용하는 것이 좋다.

도커 볼륨이 필요한 이유

도커 컨테이너는 애플리케이션을 실행할 수 있는 가벼운 프로세스로, 필요한 경우 데이터를 메모리나 파일 시스템에 저장할 수 있다. 그러나 도커 컨테이너는 휘발성 특성을 가지며, 삭제되면 그 안에 있던 모든 데이터도 함께 사라진다. 따라서 데이터 영속성을 유지해야 하는 경우 문제가 발생한다.

  • 컨테이너는 프로세스: 도커 컨테이너는 프로세스이기 때문에 메모리에 데이터를 저장하거나 파일 시스템에 기록할 수 있지만, 데이터는 컨테이너의 수명과 밀접하게 연결되어 있다.
  • 휘발성 데이터: 컨테이너가 삭제되면 해당 컨테이너가 소유하고 있던 모든 데이터도 삭제된다.
  • 데이터 영속성 부족: 컨테이너 자체적으로는 영속성을 제공하지 않기 때문에, 컨테이너가 삭제되더라도 데이터를 유지하려면 별도의 저장소가 필요하다.

❗️데이터를 영구적으로 보존하고, 필요시 다른 컨테이너에서도 접근할 수 있도록 도커 볼륨을 사용한다.❗️

데이터의 영구 저장과 컨테이너 간 공유를 도와주는 방식

1) Bind Mount

- 도커 컨테이너의 파일 시스템을 호스트 컴퓨터의 특정 디렉터리와 직접 연결하는 방식

- 호스트 컴퓨터의 파일 시스템과 컨테이너가 연결되어 실시간으로 파일을 공유한다.

- 데이터가 호스트 컴퓨터에 저장되므로, 도커 엔진을 사용할 필요 없이 바로 데이터에 접근할 수 있다.

2) Volume

- 도커가 자체적으로 관리하는 파일 시스템에 데이터를 저장하는 방식

- 도커 엔진에 의해 관리되므로 사용자는 파일 경로를 명시할 필요가 없으며, 도커는 이를 백그라운드에서 처리한다.

- 이 방식은 다수의 컨테이너 간에 데이터를 공유하거나, 호스트 파일 시스템과의 직접적인 연결을 원치 않을 때 유용하다.

3) Tmpfs Mount

- 데이터를 메모리에만 일시적으로 저장하는 방식

- 데이터를 영구적으로 보존하지 않지만, 디스크 I/O 성능을 최적화해야 하는 경우 유용하다.

- 시스템 메모리를 사용해서 데이터를 빠르게 처리할 수 있으며, 민감한 데이터를 다룰 때 메모리만을 사용한다.

728x90
반응형