익명 볼륨과 명명된 볼륨

wangjh789·2022년 8월 24일
0

docker

목록 보기
10/25

볼륨이란 컨테이너외부의 특정폴더에 연결된 도커 컨테이너 내부의 폴더/파일 이다.

볼륨은 도커가 인식하는 호스트 머신에 있는 폴더로서 도커 컨테이너 내부의 폴더와 매핑된다.
그렇기 때문에 변경사항이 생기면 반영된다.
컨테이너가 제거 되어도 파일은 유지되게끔 하기위해선 볼륨을 사용하면 될까?

도커파일에 VOLUME [ "<볼륨을 만들고 싶은 이미지 디렉토리>" ] 를 명시하면 도커가 익명볼륨을 만들어 이미지내의 파일과 매핑해준다.
볼륨은 도커가 관리하므로 우리는 미러링된 디렉토리의 위치를 모른다.
docker volume ls로 볼륨을 출력할 수 있다.

익명 볼륨은 컨테이너가 시작할 때 만들어지고 --rm 삭제될 때 사라진다.
만약 --rm 으로 자동 삭제하지 않고 docker rm 으로 수동 삭제한다면 익명 볼륨은 사라지지 않는다.
또 같은 이미지로 다른 컨테이너를 시작할때는 또 다른 익명 볼륨을 사용한다.
익명 볼륨은 특정한 하나의 컨테이너와 연관이있다.

컨테이너가 삭제되어도 볼륨이 살아있게 하는 것은 Named Volume을 쓰는 것이다.
명명된 볼륨은 영구적으로 보존되어야 하는 데이터나 직접 볼 필요가 없는 중요한 데이터에 적합하다. (개발자가 접근하지 못하고 도커가 관리하기 때문에)
명명된 볼륨은 컨테이너가 삭제되어도 살아있기 때문애 다수의 컨테이너와 연관이 있다.

명명된 볼륨은 도커파일에서 설정하지 않는다.
docker run -d -p 3000:80 --rm -v <명명할 볼륨>:<연결할 이미지내 디렉토리> <이미지 이름>
-v 플래그로 볼륨의 이름을 지정하고 디렉토리를 매핑한다.
docker run -d -p 3000:80 --rm --name feedback-app -v feedback:/app/feedback feedback-node:volume

docker volume rm <볼륨이름>
docker volume prune
으로 볼륨을 삭제할 수 있다.

profile
기록

0개의 댓글