Oh My Algorithm
Concept Guide영속성 · 마운트

볼륨과 데이터 (Volumes)

컨테이너의 쓰기 레이어는 컨테이너와 수명을 같이 합니다. 그래서 컨테이너를 지우면 그 안에 쌓인 데이터도 함께 사라집니다. 볼륨은 호스트 쪽 저장소를 컨테이너 경로에 얹어 데이터를 컨테이너 바깥에 두는 장치이고, 덕분에 컨테이너를 갈아치워도 데이터베이스 파일은 그대로 남습니다.

01 개념 한눈에 보기

Interactive Step-by-Step
볼륨 없이 · 쓰기 레이어에 쌓기
컨테이너 · postgres
postgres 프로세스
쓰기 레이어/var/lib/postgresql/data
이미지 레이어 (읽기 전용)
호스트 파일시스템 — 아무것도 저장되지 않음

볼륨 없이 데이터베이스를 띄우면, 쌓이는 데이터는 전부 컨테이너의 쓰기 레이어로 들어갑니다.

Logic Node1 / 4
볼륨 마운트 · 컨테이너 바깥에 두기
컨테이너 · postgres
postgres 프로세스
마운트 지점/var/lib/postgresql/data
이미지 레이어 (읽기 전용)
-v pgdata:/var/lib/postgresql/data · 쓰기 레이어를 건너뛴다
WALrowidxrow
named volume · pgdataDocker 관리 · 이식성
bind mount · ./src호스트 경로 직접 지정
호스트 파일시스템 — 컨테이너와 무관하게 존속

볼륨은 호스트 쪽 저장소를 컨테이너 안의 경로에 얹습니다. 데이터가 사는 곳이 컨테이너 바깥으로 옮겨집니다.

Logic Node1 / 6

02 쉽게 이해하기

For Everyone
🔑비유

호텔 방(컨테이너)에 짐을 풀어두면 체크아웃할 때 다 치워집니다. 볼륨은 호텔 금고가 아니라 아예 집에 둔 창고를 방에 연결해 둔 것이라, 방을 옮겨도 짐은 그대로입니다.

💡쉽게 말하면

쓰기 레이어에 저장한 것은 컨테이너를 rm 하는 순간 사라집니다.

볼륨을 마운트하면 그 경로에 대한 읽기·쓰기가 컨테이너 레이어를 건너뛰고 호스트 저장소로 직접 갑니다.

Docker 가 관리하는 named volume 은 이식성이 좋고, 호스트 경로를 직접 지정하는 bind mount 는 개발 중 소스 코드를 실시간 반영할 때 편합니다.

📍어디에 쓰나
  • 데이터베이스 데이터 보존
  • 컨테이너 교체·업그레이드 시 상태 유지
  • 개발 중 소스 실시간 반영(bind mount)
  • 컨테이너 간 데이터 공유

03 자주 묻는 질문

FAQ
볼륨과 데이터 (Volumes)란 무엇인가요?+

컨테이너의 쓰기 레이어는 컨테이너와 수명을 같이 합니다. 그래서 컨테이너를 지우면 그 안에 쌓인 데이터도 함께 사라집니다. 볼륨은 호스트 쪽 저장소를 컨테이너 경로에 얹어 데이터를 컨테이너 바깥에 두는 장치이고, 덕분에 컨테이너를 갈아치워도 데이터베이스 파일은 그대로 남습니다.

볼륨과 데이터 (Volumes)은(는) 어디에 사용하나요?+

데이터베이스 데이터 보존, 컨테이너 교체·업그레이드 시 상태 유지, 개발 중 소스 실시간 반영(bind mount), 컨테이너 간 데이터 공유

볼륨과 데이터 (Volumes)를 쉽게 비유하면?+

호텔 방(컨테이너)에 짐을 풀어두면 체크아웃할 때 다 치워집니다. 볼륨은 호텔 금고가 아니라 아예 집에 둔 창고를 방에 연결해 둔 것이라, 방을 옮겨도 짐은 그대로입니다.

Guide Progress0%