기본적으로 container 내의 데이터는 일시적입니다 — container가 제거되면 사라집니다. volume(그리고 bind mount)은 container보다 오래 지속되는 영속적 저장소를 제공하며, 이는 데이터베이스와 container 재시작/제거를 견뎌야 하는 모든 데이터에 필수적입니다.
문제: container는 일시적이다
container의 쓰기 가능 layer는 container가 제거되면 삭제됨:
→ container 내부에 쓰인 데이터(예: 데이터베이스의 파일)가 사라짐
→ container는 일회용/교체 가능하도록 만들어짐 → 중요한 데이터를 그 안에 저장하지 말 것
→ 영속적인 데이터를 위해서는 container의 라이프사이클 밖에 있는 저장소가 필요함.
volume — 관리되는 영속적 저장소
docker volume create mydata
docker run -v mydata:/var/lib/mysql mysql
docker volume
docker volume inspect mydata
