[도커] 볼륨과 마운트

박상준·2024년 4월 15일
0

도커

목록 보기
2/2
  • 볼륨 마운트는 컨테이너와 호스트 간의 데이터 공유를 가능하게 하는 중요한 기능임.
  • 이를 통하여 컨테이너가 삭제되더라도 데이터는 보존될 수 있으며, 여러 컨테이너가 동일한 데이터에 접근할 수 있도록 한다.

볼륨과 마운트의 이해

  • 볼륨(Volume)
    • 스토리지의 한 영역을 분할.
    • 하드디스크나 SSD 의 일부 공간을 의미한다.
    • 볼륨을 사용하면 데이터를 저장할 수 있는 독립된 공간을 확보가능하다.
  • 마운트(Mount)
    • OS 나 소프트웨어가 스토리지 영역(볼륨) 을 관리할 수 있도록 연결하는 과정
    • 마운트를 통해 컨테이너는 호스트의 파일 시스템에 있는 데이터를 마치 자신의 것처럼 사용 가능

볼륨 마운트의 필요성

  • 컨테이너는 일시적으로 사용되고 삭제되는 성격을 가진다.
  • 이 때문에 컨테이너 내부에 저장된 데이터도 함께 삭제될 위험이 있다.
    • ex
      • DB 컨테이너를 업그레이드 하거나 재배포할 때, 내부 데이터가 소멸되는 것을 방지하기 위하여 볼륨 마운트가 필요하다.

볼륨 마운트의 장점

  • 데이터 퍼시스턴시(Data Persistency)
    • 컨테이너가 삭제되어도 마운트된 볼륨에 저장된 데이터는 보존된다.
    • 이를 통해 데이터의 영속성을 보장한다.
  • 데이터 공유
    • 여러 컨테이너가 동일한 볼륨에 마운트함으로써 데이터를 공유할 수 있다.
    • MSA 아키텍처에서 데이터를 공유해야 하는 경우 유용하다.
  • 성능
    • 데이터를 컨테이너 내부에 저장하는 것 보다 볼륨을 사용하는 것이 성능상 이점이 있음.
    • 볼륨은 직접 호스트의 파일 시스템에 접근하기에 파일 입출력 작업이 더 빠를 수 있다.

스토리지 마운트의 종류

볼륨 마운트

  • 도커 엔진이 직접 관리하는 스토리지 영역 내에 생성된 볼륨을 컨테이너에 마운트하는 방식.
  • 볼륨 마운트의 주요 특징
    1. 관리의 용이성
      • 볼륨은 이름을 통해 관리
      • 사용자가 볼륨을 가시적으로 확인가능
    2. 도커 엔진 관리
      • 볼륨은 도커 엔진에 의해 관리
      • 호스트 시스템의 구체적인 파일 시스템 경로를 알 필요가 없음.
    3. 사용 목적
      • 임시 데이터 저장, 백업, 데이터가 지속적으로 필요하지만, 자주 접근하지 않는 데이터 저장소에 적합하다.
  • 도커가 제공하는 볼륨 관리 기능으로,
    • 생성, 삭제, 백업 등을 수행가능
    • 도커 컨테이너 간의 볼륨을 공유하는 것이 가능

바인드 마운트

  • 호스트 시스템의 특정 디렉터리나 파일을 컨테이너에 직접 마운트하는 방식
  • 바인드 마운트의 특징
    1. 직접 접근
      • 호스트 시스템의 특정 경로를 컨테이너에 직접 마운트하기에, 파일 시스템 수준에서 호스트와 컨테이너 간의 데이터 공유가 가능하다.
    2. 유연성
      • 개발 환경의 설정, 로컬 파일을 컨테이너에 적용해야 하는 경우 등에 유용함.
      • 실시간 파일 변경을 컨테이너에 반영가능
    3. 사용 목적
      • 개발 과정에서 소스 코드나 설정 파일 등을 컨테이너와 공유하거나, 호스트 시스템의 특정 데이터를 컨테이너에 직접 사용해야 할 때 적합하다.

2가지 방식 마운트의 차이점

  • 볼륨 마운트
    • 환경 의존성의 배제
    • 호스트 컴퓨터에서 파일을 직접 다룰 필요가 없는 경우 적합
  • 바인드 마운트
    • 파일을 자주 편집해야 하거나
    • 호스트의 특정 파일이나 디렉터리를 컨테이너와 공유해야하는 경우
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글