볼륨 마운트

윤이령·2026년 4월 21일

볼륨 마운트

  • 볼륨 : 스토리지의 한 영역을 분할한 것

    • 하드디스크나 SSD를 분할한 하나의 영역
  • 마운트 : 대상을 연결해 운영체제 또는 소프트웨어의 관리하에 두는 일

    • USB 연결
  • 소프트웨어 업그레이드 등의 이유로 컨테이너는 언젠가 삭제됨
    -> 컨테이너 속의 데이터도 컨테이너와 함께 소멸
    -> 외부로 데이터 대피
    -> 다만, 컨테이너는 생성 및 폐기가 빈번해서 처음부터 외부에 둔 데이터에 접근해 사용이 일반적 -> 데이터 퍼시스턴시
    -> 이때 데이터를 두는 장소가 마운트된 스토리지 영역

스토리지 마운트 종류

볼륨 마운트

  • 도커 엔진이 관리하는 영역내에 만들어진 볼륨을 컨테이너에 디스크 형태로 마운트
  • 직접 조작하기 어려움 -> 임시 목적의 사용. 자주 쓰지는 않지만 지우면 안되는 파일. 을 두는데 사용

바인드 마운트

  • 도커가 설치된 컴퓨터의 문서 폴더 또는 바탕화면 폴더 등 도커 엔진이 관리하지 않는 영역의 기존 디렉터리를 컨테이너에 마운트
  • 자주 사용하는 파일을 두는데 사용

파일을 직접 편집해야 할 일이 많다면 바인드 마운트 사용
그렇지 않다면 볼륨 마운트 사용

임시 메모리 마운트

  • 디스크가 아닌 주 메모리 영역을 마운트
  • 디스크보다 빠르고 읽고 쓰기 가능 -> 접근 속도를 높일 목적으로 사용
  • 도커엔진이 정지되거나 호스트가 재부팅하면 소멸

스토리지 영역 마운트 커맨드

  • run 커맨드 옵션 형태로 지정
  • 마운트 대상이 되는 컨테이너 속 위치는 컨테이너의 소프트웨어가 컨텐츠를 저장하는 경로가 되는 경우가 많음 -> 도커 이미지 참조 문서 확인
    • 아파치 : /usr/local/apache2/htdocs
    • MySQL : /var/lib/mysql

영역 생성

바인드 마운트

  • 원본이 될 폴더(디렉터리)나 파일 먼저 만듬 -> 폴더 만들던대로 만들면 됨. 경로는 어디든 괜춘

볼륨 마운트 볼륨 생성

# 생성
docker volume create 볼륨_이름
# 삭제
docker volume rm 볼륨_이름
  • 커맨드
    • create : 생성
    • inspect : 상세정보 출력
    • ls : 목록 출력
    • prune : 현재 마운트되지 않은 볼륨 삭제
    • rm : 지정한 볼륨 삭제

마운트

# 바인드 마운트
docker run (생략) -v 스토리지_실제_경로:컨테이너_마운트_경로 (생략)
# 볼륨 마운트
docker run (생략) -v 볼륨_이름:컨테이너_마운트_경로 (생략)

ex)

바인드 마운트

#1. 컨테이너 실행
docker run --name apa000ex20 -d -p 8090:80 -v C:\work\apa_folder:/usr/local/apache2/htdocs httpd

# 2. 마운트된 폴더/디렉터리에 index.html 파일 배치
# index.html 파일 만들어서 apa-folder 폴더에복사후 붙여넣기
# localhost:8090 접속 시 안녕하세요. 확인 가능

볼륨 마운트

# 1. 마운트할 볼륨 생성
docker volume create apa000vol1

# 2. 컨테이너 실행
docker run --name apa000ex21 -d -p 8091:80 -v apa000vol1:/usr/local/apache2/htdocs httpd

# 3. 볼륨의 상세 정보 확인
docker volume inspect apa000vol1
docker container inspect apa000ex21

# 4. 뒷정리 -> 컨테이너 삭제, 볼륨 삭제
docker volume rm apa000vol1

컨테이너 안의 데이터는 컨테이너 삭제 시 사라질 수 있음
→ 그래서 외부 저장소와 연결(마운트) 해서 데이터를 보존함
→ Apache 같은 경우 /htdocs(웹 파일), /conf(설정 파일) 등 의미 있는 특정 폴더들과도 마운트 가능함
→ 바인드 마운트(bind mount) 는 내 컴퓨터의 실제 폴더(눈에 보이는 경로)와 연결하는 방식
→ 볼륨(volume) 은 내 저장장치 안에 실제로 존재하지만, 사용자가 직접 경로를 보지 못하고 Docker가 관리하는 전용 저장 공간
→ 보통 바인드 마운트는 개발용(코드 수정 즉시 반영), 볼륨은 운영 환경이나 데이터(DB 등) 보존 용도로 많이 사용함

0개의 댓글