Docker

Docker Volume 간단히 이해

JM Lee 2023. 6. 1. 03:10
728x90

Volume

  • 컨테이너에 저장되는 데이터의 일부를 host와 공유해 주는 역할
  • host에 저장 된 데이터는 사용자가 직접 삭제하지 않는 이상 계속해서 유지되며, 때문에 컨테이너가 종료된다 하더라도 데이터는 유실되지 않음
  • 이와 같은 특성 덕분에, 컨테이너 내부에서 변경되는 내용들을 유지해야 할 때 주로 사용

 

Docker Volume

  • docker 엔진이 관리하는 volume을 생성하는 방식.
  • docker volume 방식을 사용해 생성된 volume은 host의 /var/lib/docker/volumes/ 경로에 저장
  • docker에서 가장 권장하는 방식
  • 컨테이너간 파일을 공유하거나 중요도가 높은 파일들을 사용자가 쉽게 수정/삭제 하지 못하도록 할 때 주로 사용

Bind Mount

  • docker volume 방식과 매우 유사함
  • docker container를 생성할 때 사용자가 지정한 경로에 데이터가 저장
  • docker 엔진의 관리를 받지 않는 영역이기 때문에 사용자가 직접 파일을 추가/수정/삭제 할 수 있다는 특징이 있다.
  • docker 공식 문서에서는 이러한 특징으로 인해 운영에 영향을 미칠 수 있기 때문에 유사한 기능인 docker volume 방식을 사용하는 것을 권장함.
  • 설정파일 혹은 소스코드를 프로젝트와 서버가 공유할 때 사용

Tmpfs Mount

  • 기존의 방식들이 ssd 혹은 hdd와 같은 저장장치에 데이터를 저장한다면, tmpfs mount 방식은 휘발성 메모리인 RAM에 데이터를 저장함.
  • 파일로 저장하면 안 되는 민감한 정보를 다룰 때 사용.
  • 많은 양의 데이터를 임시로 저장할 때, 보안적으로 중요한 데이터를 저장할 때 사용.

 

자세한 내용은 docker 공식 문서에서 확인할 수 있다.

>> 웬만하면 Docker Volume 쓰라고 함.

 

Docker Volume, Bind Mount는 모두 Docker-compose.yml 사용하여 다중 어플리케이션 정의.

 

* Volume 설정 확인

# volume 목록 보기
sudo docker volume ls

# volume의 이름으로 설정 정보 확인하기
sudo docker volume inspect $volume_name
ex) sudo docker volume inspect ubuntu_example_http_code

 

* docker volume 삭제

sudo docker volume prune

'Docker' 카테고리의 다른 글

Docker container 2개 이상 띄우기  (0) 2023.06.01
Entrypoint 활용하기  (0) 2023.06.01
Dockerfile = Docker에서 이미지 빌드하기  (0) 2023.06.01
Container Port Forwarding  (0) 2023.06.01
Docker compose가 무엇일까요?  (0) 2023.06.01