1) 볼륨과 마운트
1) 볼륨과 마운트의 개념
볼륨이란 스토리지의 한 영역을 분할한 것으로, 하드디스크나 SSD를 분할한 하나의 영역이다.
마운트란 '연결하다'라는 의미 그대로 대상을 연결해 운영체제 또는 소프트웨어의 관리하에 두는 일을 말한다.
2) 스토리지 마운트의 종류
1) 볼륨 마운트
볼륨 마운트는 도커 엔진이 관리하는 영역 내에 만들어진 볼륨을 컨테이너에 디스크 형태로 마운트한다.
이름만으로 관리가 가능하므로 다루기 쉽지만 볼륨에 비해 직접 조작하기 어렵기 때문에 '임시 목적의 사용'이나
'자주 쓰지는 않지만 지우면 안 되는 파일'을 두는 목적으로 많이 사용한다.
2) 바인드 마운트
바인드 마운트는 도커가 설치된 컴퓨터의 문서 폴더 또는 바탕화면 폴더 등 도커 엔진에서 관리하지 않는 영역의 기존
디렉터리를 컨테이너에 마운트 하는 방식이다.
3) 임시 메모리 마운트(tmpfs)
임시 메모리 마운트는 디스크가 아닌 주 메모리 영역을 마운트한다. 디스크보다 훨씬 빠른 속도로 읽고 쓰기가 가능하기 때문에 접근 속도를 높일 목적으로 사용하지만 도커 엔진이 정지되거나 호스트가 재부팅하면 소멸한다.
디렉터리가 아닌 파일 단위로도 마운트가 가능하며, 폴더(디렉토리) 속에 파일을 직접 두거나 열어볼 수 있기 때문에 자주
사용하는 파일을 두는 데 사용한다.
4) 두 가지 마운트 방식의 차이점
볼륨 마운트는 도커 엔진의 관리하에 있으므로 사용자가 파일 위치를 신경 쓸 필요가 없다.
또한 바탕화면에 내버려 뒀다가 실수로 지워버리는 일도 일어나지 않으며, 운영체제에 따라 명령어가 달라지는 등의 의존성 문제도 일어나지 않는다. 예를 들어서 윈도우와 mac, 리눅스는 경로를 기재하는 방식이 제각각 다르기 때문에 리눅스 사용자가 만든 컨테이너를 윈도우 사용자가 macOS 사용자가 이용하려면 기재된 경로를 수정해야 한다. 그러나 볼륨 마운트를 사용하는 경우 도커 엔진에서 일괄적으로 관리하고 있기 때문에 이러한 작업이 필요하지 않으며 환경에 따라서 경로가 바뀌는 일도 없다.
하지만 볼륨 마운트는 도커 컨테이너를 경유하지 않고 직접 볼륨에 접근할 방법이 없다는 단점이 있으며, 억지로 볼륨을 수정하려고 하는 경우에는 볼륨 자체가 깨질수도 있다는 우려가 있고 백업을 하려고 해도 복잡한 절차가 필요하다.
바인드 마운트는 도커가 관리하지 않는 영역 어디라도 파일을 둘 수 있으며, 기존과 동일한 방식으로 파일을 사용할 수 있으므로 다른 소프트웨어를 사용해 쉽게 편집이 가능하며, 도커 엔진과 무관하게 파일을 다룰 수 있다.
3) 볼륨 마운트 실습
1) 볼륨 생성
마운트할 볼륨을 생성한다.
볼륨이 생성될 위치는 도커 엔진에서 관리하기 때문에 별도로 신경쓰지 않아도 된다.
docker volume create {볼륨명}
2) 도커 run 명령어로 컨테이너 생성
실습을 위해 도커 run 명령어로 아파치 컨테이너를 생성한다.
-v 옵션에서 컨테이너 속 경로는 아파치의 경우 /usr/local/apache2/htdocs httpd MySQL의 경우 /var/lib/mysql이며,
다른 이미지들의 경우 도커 이미지의 참조 문서 등을 보면 데이터가 위치하는 경로를 알 수 있다.
docker run -d --name{컨테이너명} -p{포트:포트} -v{볼륨명}:/usr/local/apache2/htdocs httpd
3) 도커 컨테이너 확인
아래 명령어를 통해 생성된 컨테이너를 상세하게 확인한다.
docker container inspect {컨테이너명}
Mounts 부분을 확인하면 내가 생성한 볼륨에 마운트된 정보를 확인할 수 있다.
'도커&쿠버네티스' 카테고리의 다른 글
로키 리눅스 기반 도커를 이용한 Nginx Reverse Proxy 서버 구축하기 (0) | 2024.10.17 |
---|---|
로키 리눅스 기반 도커 이미지 만들기 (0) | 2024.10.14 |
로키 리눅스 기반 도커 컨터이너와 호스트 간 파일 복사하기 (0) | 2024.10.12 |
로키 리눅스 기반 Mysql, Redmine 구축 및 연동하기 (0) | 2024.10.11 |
로키 리눅스 기반 도커 MySQL, Wordpress 구축하기 (0) | 2024.10.09 |