////
Search

Docker Volume

생성일
2023/04/28 02:36
태그

Docker volume

도커의 컨테이너는 이미지를 통해 생성되는데, 컨테이너에서 이미지를 통해 생성되는 부분은 ro(read only)영역이고 컨테이너를 수정하게 되면 rw(read/write)영역에 추가 레이어로 저장된다. rw영역은 휘발성이기 때문에 컨테이너에서 수정한 부분은 영구적으로 저장되지 않고 컨테이너 종료 시 휘발된다. 재생성 시 컨테이너는 이미지에 설정되어 있는대로 ro영역에 다시 만들어진다. 컨테이너에서 데이터의 영구적인 보관이 필요할 때 따로 bind하거나 volume을 mount해서 데이터를 보관하여야 한다.
도커 볼륨은 이와 같이 컨테이너가 종료되더라도 데이터를 보존하고 다큰 컨테이너와 공유할 수 있도록 기능하여, 데이터의 영구적인 보존과 공유의 편리성을 제공한다.

Docker Volume의 종류

1.
binding volumes 호스트 파일 시스템의 특정 디렉토리를 컨테이너 내의 경로에 연결(bind)하여 데이터를 저장한다. 호스트 파일 시스템의 디렉토리 또는 파일을 컨테이너 내에서 사용할 수 있도록 마운트하며, 컨테이너가 종료되어도 호스트 파일 시스템에 데이터가 남고 호스트-컨테이너 간에 데이터 공유가 가능하다. ex) /root/test:/var/www/html
2.
volume volumes 도커 엔진에서 관리하는 호스트 파일 시스템의 일부에 별도의 볼륨을 생성하고, 해당 볼륨을 컨테이너에 마운트하여 데이터를 저장한다. 호스트 파일 시스템과 별도로 독립적으로 관리되며, 컨테이너와도 별도의 마운트 포인트를 가진다. ex) testvolume:/root/test
3.
tmpfs volumes VM의 temperary file system과 마찬가지로 호스트의 메모리를 디스크처럼 사용하여 저장하는 방법이다. 메모리 특성상 빠르다는 장점이 있지만 영구적인 저장이 불가능해서 컨테이너를 종료하면 데이터가 삭제된다. 보안 혹은 비영구 상태 데이터로 데이터를 유지하지 않으려는 경우에 주로 사용된다.