익명 볼륨
docker run -v /app/data...
-v
명령어 및 도커 파일의 VOLUME
으로 생성
- 익명 볼륨은 컨테이너에 연결된 일종의 볼륨을 생성
- 컨테이너가 제거되면 볼륨 삭제
- 컨테이너를 종료하고 다시 시작해도 컨테이너가 제거되면 익명 볼륨도 제거
- 컨테이너 간에 데이터 공유 불가능
- 컨테이너에 이미 존재하는 특정 데이터를 잠그는데 유용하다
why? -> 덮어쓰기 방지, 위치를 찾기가 거의 불가능
- 시간 절약 가능
- 호스트 머신에 폴더 생성
- 도커가 컨테이너 내부에 모든 데이터를 저장할 필요가 없다.
- 도커가 이 컨테이너 읽기-쓰기 레이어 내부의 모든 데이터를 관리할 필요는 없다.
이름이 있는 볼륨
docker run -v data:/app/data...
- 도커에서 생성 불가능
-v
명령어로 생성
- 특정 컨테이너에 연결 x
- 컨테이너를 삭제해도 남아있다.
- 여러 컨테이너 간에 데이터를 공유할 수 있다.
- 컨테이너 종료 및 제거 전반에 걸쳐 데이터를 저장하는데 사용할 수 있다.
바인드 마운트
docker run -v /path/to/...:/app/code...
- 호스트 머신에 데이터가 저장되는 위치를 알 수 있다.
- 하나의 컨테이너에 국한되지 않는다.
- 다수 컨테이너에 연결 가능
- 컨테이너 종료 및 제거 후에도 유지
- 바인드 마운트 데이터를 지우기 위해서는 실제 호스트 머신에서 삭제해야한다.
-> 즉 로컬 파일을 삭제해야 컨테이너의 모든 데이터를 제거할 수 있다.
- 컨테이너 간에 데이터 공유 가능
- 재시작을 거쳐 동일한 컨테이너 중 하나에서 재사용 가능