볼륨과 데이터 (Volumes)
컨테이너의 쓰기 레이어는 컨테이너와 수명을 같이 합니다. 그래서 컨테이너를 지우면 그 안에 쌓인 데이터도 함께 사라집니다. 볼륨은 호스트 쪽 저장소를 컨테이너 경로에 얹어 데이터를 컨테이너 바깥에 두는 장치이고, 덕분에 컨테이너를 갈아치워도 데이터베이스 파일은 그대로 남습니다.
01 개념 한눈에 보기
Interactive Step-by-Step볼륨 없이 데이터베이스를 띄우면, 쌓이는 데이터는 전부 컨테이너의 쓰기 레이어로 들어갑니다.
볼륨은 호스트 쪽 저장소를 컨테이너 안의 경로에 얹습니다. 데이터가 사는 곳이 컨테이너 바깥으로 옮겨집니다.
02 쉽게 이해하기
For Everyone호텔 방(컨테이너)에 짐을 풀어두면 체크아웃할 때 다 치워집니다. 볼륨은 호텔 금고가 아니라 아예 집에 둔 창고를 방에 연결해 둔 것이라, 방을 옮겨도 짐은 그대로입니다.
쓰기 레이어에 저장한 것은 컨테이너를 rm 하는 순간 사라집니다.
볼륨을 마운트하면 그 경로에 대한 읽기·쓰기가 컨테이너 레이어를 건너뛰고 호스트 저장소로 직접 갑니다.
Docker 가 관리하는 named volume 은 이식성이 좋고, 호스트 경로를 직접 지정하는 bind mount 는 개발 중 소스 코드를 실시간 반영할 때 편합니다.
- –데이터베이스 데이터 보존
- –컨테이너 교체·업그레이드 시 상태 유지
- –개발 중 소스 실시간 반영(bind mount)
- –컨테이너 간 데이터 공유
03 자주 묻는 질문
FAQ볼륨과 데이터 (Volumes)란 무엇인가요?+
컨테이너의 쓰기 레이어는 컨테이너와 수명을 같이 합니다. 그래서 컨테이너를 지우면 그 안에 쌓인 데이터도 함께 사라집니다. 볼륨은 호스트 쪽 저장소를 컨테이너 경로에 얹어 데이터를 컨테이너 바깥에 두는 장치이고, 덕분에 컨테이너를 갈아치워도 데이터베이스 파일은 그대로 남습니다.
볼륨과 데이터 (Volumes)은(는) 어디에 사용하나요?+
데이터베이스 데이터 보존, 컨테이너 교체·업그레이드 시 상태 유지, 개발 중 소스 실시간 반영(bind mount), 컨테이너 간 데이터 공유
볼륨과 데이터 (Volumes)를 쉽게 비유하면?+
호텔 방(컨테이너)에 짐을 풀어두면 체크아웃할 때 다 치워집니다. 볼륨은 호텔 금고가 아니라 아예 집에 둔 창고를 방에 연결해 둔 것이라, 방을 옮겨도 짐은 그대로입니다.
