데이터 종류

  • 어플리케이션 데이터
    • 코드나 라이브러리로 이미지에 읽기 전용으로 존재
  • 임시 데이터
    • 읽기,쓰기 가능하며 컨테이너가 구동하는 기간만 존재, 재시작 시 사라짐
  • 영구 데이터
    • 읽기,쓰기 가능하며, 컨테이너나 볼륨에 존재, 재시작 시 존재해야 함

 

 

볼륨(VOLUME)

도커가 컨테이너 내부의 데이터를 호스트 서버 어딘가에 "미러링" 저장하는

도커만이 관리하고 사용자는 찾기도 어려우며, 접근해 수정을 가해선 안됨(접근 못하도록 설계함)

 

볼륨 두 가지 

익명 볼륨

컨테이너 내부 경로만 지정
호스트 서버 경로를 지정하지 않아 도커가 임의로 매핑함
사용자는 위치를 모름
심지어 접근조차 할 수 없도록 설계됨

확인 명령어
docker volume ls

컨테이너 종료 시 익명볼륨도 같이 사라짐
즉, "익명 볼륨 데이터"는 수명주기를 컨테이너와 함께함
휘발성, 일회성
하나의 익명 볼륨은 하나의 컨테이너에 강하게 연결되어 있음
명명된 볼륨 (named)

익명 볼륨과 같지만 이름을 부여한다.
큰 차이는 컨테이너 제거 시 호스트 저장소에 데이터는 안지워진다.
다만 접근하면 안되도록 설계한 것은 동일하기에 편집하지 않지만 삭제되면 안되는 데이터가 오기 좋다.
컨테이너가 종료되도 호스트 서버에 있는 볼륨은 삭제되지 않음
이 볼륨은 하나의 컨테이너에만 연결되지 않음
즉, 볼륨 이름을 컨테이너 실행 시 똑같이 입력하면 여러 컨테이너가 연결될 수 있음

컨테이너를 종료해도 볼륨이 살아있는 것을 있다.

볼륨 삭제

명명된 볼륨은 컨테이너를 종료해도 남아있기에 제거 방법을 알아둬야 한다.

docker rm 볼륨이름   // 단건 제거

docker volume prune // 컨테이너 참조가 하나도 없는 모든 볼륨 제거

 

모든 명령어 공통 사항으로 제거 시 prune 가 들어가면, 참조되지 않고 단순히 존재만 할 시 제거 대상이 된다.

 

 

 

 

 

 

 

 

+ Recent posts