728x90
반응형
볼륨을 마운트하면 컨테이너의 일부를 호스트 컴퓨터의 일부와 같이 다룰 수 있어 편리하다.
볼륨과 마운트
- 볼륨: 스토리지의 한 영역을 분할한 것, 기다란 카스테라를 자른 한 조각이라 생각해도 된다.
- 마운트: 연결하다는 의미로, 대상을 연결해 OS 또는 SW의 관리 하에 두는 일을 말한다.
- USB 메모리를 PC에 연결하면 폴더가 열리는 게, PC에 USB 메모리가 마운트 됐기 때문
- 실제로 컨테이너를 사용할 땐, SSD나 하드 디스크의 일부 영역을 컨테이너의 데이터 저장용으로 마운트한다.
- 마운트 된 스토리지가 아닌 컨테이너에 데이터가 저장되면, 컨테이너 삭제와 같이 데이터도 삭제되기 때문
- 휴대폰 변경 시, 외장하드나 클라우드에 데이터를 저장 후 새로운 폰에서 데이터를 받는다.
- 하지만 컨테이너는 생성과 폐기가 빈번하여, 매번 데이터를 옮기지 않는다.
- 대신, 처음부터 컨테이너 외부에 데이터를 저장해놓고, 외부에 접근하여 사용한다.
- 이를 데이터 퍼시스턴시(data persistency) 라고 한다.
- 이때 데이터가 저장되는 외부 장소가 마운트 된 스토리지 영역이다.
- 마운트 대상이 되는 스토리지는 볼륨 외에도 디렉터리나 파일, 메모리가 될 수 있다.
스토리지 마운트의 종류
- 볼륨 마운트(=스토리지 마운트)
- 도커 엔진이 관리하는 영역 내에 만들어진 볼륨을 컨테이너에 디스크 형태로 마운트한다.
- 이름만으로 관리가 가능하여 다루기 쉽지만, 볼륨에 비해 직접 조작하기 어려움
- 따라서, '임시 목적의 사용', '자주 쓰지는 않지만 지우면 안되는 파일'을 두는 목적으로 많이 사용한다.
- 바인드 마운트
- 도커 엔진에서 관리하지 않는 영역의 기존 디렉터리를 컨테이너에 마운트 하는 방식이다.
- 도커가 설치된 컴퓨터의 문서 폴더 또는 바탕화면 폴더 등을 마운트 한다는 의미
- 디렉터리가 아닌 파일 단위로도 마운트 가능
- 자주 사용하는 파일을 두는데 사용한다.
- 도커 엔진에서 관리하지 않는 영역의 기존 디렉터리를 컨테이너에 마운트 하는 방식이다.
두 가지 마운트 방식의 차이점
- 차이점의 3가지 포인트
- 조작법이 간단한가, 복잡한가
- 호스트 컴퓨터에서 파일을 다루어야 하는가, 아닌가
- 환경의 의존성을 배제해야 하는가, 아닌가
- 볼륨 마운트는 익숙해지면 손쉽게 사용할 수 있고, 도커 제작사에서도 볼륨 마운트 사용을 권장한다.
- 바인드 마운트는 GUI에서와 동일한 방식으로 파일을 사용할 수 있다.
- 파일을 직접 편집해야 할 일이 많다면 바인드 마운트, 그렇지 않다면 볼륨 마운트를 사용하면 된다.
- 볼륨 마운트의 볼륨은 미리 만들어 두는 것이 좋다.
항목 | 볼륨 마운트 | 바인드 마운트 |
스토리지 영역 | 볼륨 | 디렉터리 또는 파일 |
물리적 위치 | 도커 엔진의 관리 영역 | 어디든지 가능 |
마운트 절차 | 볼륨을 생성한 후 마운트 | 기존 파일 또는 폴더를 마운트 |
내용 편집 | 도커 컨테이너를 통해서 | 일반적인 파일과 같이 |
백업 | 절차가 복잡함 | 일반적인 파일과 같이 |
스토리지 영역을 마운트하는 명령어
- 어느 방식의 마운트든, run 명령어를 사용한다.
- 마운트 하려는 스토리지의 경로가 컨테이너 속 특정 경로와 연결되도록 설정하는 형태이다.
- 바탕화면의 바로가기처럼, 실제 실행될 파일의 위치와 다르게 바탕화면에 있는 것처럼 사용하는 것과 비슷하다.
- 마운트 되는 스토리지는 본래 별도의 장소에 있지만, 마치 컨테이너 안에 있는 것처럼 설정하는 것이다..
- 바탕화면에 비유하면, 컨테이너에 스토리지를 가리키는 단축 아이콘을 만드는 것과 같다.
스토리지를 마운트하는 절차
- 스토리지 영역 생성 → 컨테이너 생성 및 마운트
스토리지 영역을 만드는 방법
- 볼륨 마운트는, 볼륨 상위 명령어를 사용해, 먼저 볼륨을 생성한다.
- 바인트 마운트는, 원본이 될 폴더나 파일을 먼저 생성한다.
- 볼륨 생성( 볼륨 마운트 ): docker volume create 볼륨_이름
- 볼륨 삭제( 볼륨 마운트 ): dockr volume rm 볼륨_이름
주요 하위 명령어 | 내용 | 생략형 | 주요 옵션 |
create | 볼륨을 생성 | X | 거의 사용하지 않음 |
inspect | 볼륨의 상세 정보를 출력 | X | 거의 사용하지 않음 |
ls | 볼륨의 목록을 출력 | X | 거의 사용하지 않음 |
prune | 현재 마운트되지 않은 볼륨을 모두 삭제 | X | 거의 사용하지 않음 |
rm | 지정한 볼륨을 삭제 | X | 거의 사용하지 않음 |
스토리지를 마운트하는 명령어
- -v 옵션 뒤에 '스토리지 실제 경로' 또는 '볼륨 이름', '컨테이너 마운트 경로' 순서대로 기재한다. 구분은 콜론(:)으로.
- 바인드 마운트는 볼륨을 마운트하지 않지만, 볼륨 마운트와 마찬가지로 -v 옵션을 사용한다.
- 바인드 마운트 명령어 예: docker run (생략) -v 스토리지_실제_경로:컨테이너_마운트_경로 (생략)
- 볼륨 마운트 명령어 예: docker run (생략) -v 볼륨_이름:컨테이너_마운트_경로 (생략)
728x90
'docker & kubernetes' 카테고리의 다른 글
컨테이너 사용법 4 | Docker&Kubernetes 학습 27 (0) | 2024.11.30 |
---|---|
컨테이너 사용법 3 | Docker&Kubernetes 학습 26 (0) | 2024.11.29 |
컨테이너 사용법 1 | Docker&Kubernetes 학습 24 (0) | 2024.11.27 |
도커 사용방법 16 | Docker&Kubernetes 학습 23 (0) | 2024.11.26 |
도커 사용방법 15 | Docker&Kubernetes 학습 22 (0) | 2024.11.25 |