[Volume , Bind mount] 데이터 영구적으로 보관하기

2023. 10. 28. 00:08백엔드/Docker & K8S

개인 공부용 메모 입니다.

 

Docker는 Image 기반으로 동작하고, Image 는 읽기 전용이기 때문에 변경할 수 없다 (스냅샷 상태로 항상 유지됨).

이미지를 기반으로 생성한 컨테이너가 종료됨과 동시에 컨테이너 내부에 저장됬던 데이터는 사라지고, 새로 컨테이너를 생성할때는 Image 를 기반으로 컨테이너를 생성하므로 데이터를 영구히 보관할 수 없다

 

이를 해결해주는 개념이 Volume과 Bind mount 이다.

 

Volumn 은 Docker 엔진에서 관리하는 저장공간이며, Docker CLI 등으로 접근이 가능하다

 

Bind Mount 는 호스트머신 (내 컴퓨터)의 파일시스템을 따르기 때문에 Docker 에서 파일을 관리할 수 없으며, 이로인해 중요한 데이터가 삭제될 가능성 또한 존재한다.

 

볼륨의 종류는 익명볼륨, 명명 볼륨이 있다.

docker run -v <볼륨명>:<컨테이너 내부 폴더경로>

의 명령어로 생성할 수 있으며, 볼륨명을 적지 않을 경우 익명 볼륨으로 생성된다.

 

익명 볼륨의 경우 --rm 플래그와 함께 생성된 컨테이너가 사라질 경우에는 함께 제거가된다.

 

사용되지 않는 익명 볼륨을 한꺼번에 지우려면

docker volume prune

 명령어를 입력시 제거할 수 있다.

'백엔드 > Docker & K8S' 카테고리의 다른 글

신규 웹사이트 SSL 설정 하는법  (0) 2024.01.08