도커 볼륨 (Volume)
도커 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되며
컨테이너의 변경 사항만 별도로 저장해서 각 컨테이너의 정보를 보존한다.
컨테이너 실행 후 내부에서 생성된 파일이나 데이터는 컨테이너가 삭제되면 함께 사라진다.
컨테이너의 데이터를 영속성(persistent) 데이터로 활용할 수 있는 방법이 바로 볼륨이다.
컨테이너 자체는 상태가 없고 상태를 결정하는 데이터를 외부에 저장/관리하여
컨터이너가 삭제되도 데이터가 보존되도록 하는 stateless 컨테이너 설계가 중요
볼륨을 활용하는 방법에는 여러 가지가 있다 .
호스트와 볼륨을 공유, 볼륨을 사용하는 컨테이너를 공유, 도커 자체 볼륨을 활용하는 방법이다.
○ 호스트 볼륨 공유
-v 옵션을 이용해 호스트 위치를 지정하고 컨테이너에서 참조할 path명을 설정한다.
-v [호스트 디렉토리:컨테이너 디렉토리]
호스트 d:\docker\volume 디렉토리를 컨테이너에서 volume이란 Path로 공유한다.
여러 컨테이너에서 동일한 호스트 디렉토리를 공유할 수 있다.
docker run -v d:\docker\volume:/volume --rm -it --name myvol myvolume:1.0
>cd volume
>touch vol.txt
--> d:\docker\volume\vol.txt
docker run -v d:\docker\volume:/volume --rm -it --name mycache mycache:0.0
>cd volume
>ls vol.txt
○ 볼륨 컨테이너
-v 옵션을 사용하는 컨테이너를 다른 컨테이너에서 공유하여 볼륨을 사용한다.
docker run -v d:\docker\volume:/volume --rm -it --name myvol myvolume:1.0
docker run --rm -it --volumes-from myvol --name mycache mycache:0.0
>cd volume
>ls vol.txt
○ 도커 볼륨
도커 자체에서 제공하는 볼륨을 활용하여 컨테이너에서 사용한다.
실제 물리적인 저장 위치를 고민할 필요가 없다.
-v [볼륨이름:컨테이너 디렉토리]
-- volume 생성
docker volume create myvol
-- volume 조회
docker volume ls
-- volume 구조
docker volume inspect myvol
-- 컨테이너에서 volume 사용
docker run -v myvol:/volume --rm -it --name myvol myvolume:1.0
-- 미사용 volume 삭제
docker volume prune
'Docker' 카테고리의 다른 글
Docker - image (0) | 2023.09.19 |
---|---|
Docker 설치 (0) | 2023.09.19 |
Docker 개요 (0) | 2022.11.04 |
Docker 사용법 (0) | 2022.11.03 |