볼륨 생성
docker volume create 볼륨 이름
볼륨 목록 보기
docker vomume ls
볼륨 정보 보기
docker volume inspect 볼륨 이름
{
"CreatedAt": "2023-10-05T06:12:41Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/stock/_data",
"Name": "stock",
"Options": null,
"Scope": "local"
}
(예시임)
Mountpoint는 해당 볼륨이 컨테이너 내부에서 마운트되어있는 경로
컨테이너 내부의 /var/lib/docker~ 경로로 볼륨 데이터에 접근 가능
사용되고 있지 않은 볼륨 모두 삭제
docker volume prune
볼륨 삭제 (사용중인 볼륨 불가)
docker volume rm 볼륨이름
docker volume remove 볼륨 이름
-f 옵션(강제 삭제 fource)
docker volume rm -f볼륨 이름
마운트 방법
1. 바인드 마운트
도커 외부 호스트 Pc의 경로와 컨테이너 내부 마운트
2. 볼륨 마운트
도커 내부 도커 볼륨과 컨테이너 내부 마운트
→ 도커 프로세스 내 관리 대상 (도커 공식은 볼륨 마운트를 권장)
이유는
https://docs.docker.com/storage/volumes/
제일 와닿는 이유는 os 상관 없이 볼륨 데이터 유지 가능, docker CLI등으로 관리 가능
볼륨 공유
데이터 변경이 있으면 즉각적으로 반영됨
예를 들어,
바인드 마운트 : A컨테이너에서의 데이터 변경 사항이 생기면 파일시스템 경로의 데이터가 변경됨, B컨테이너가 파일 시스템 경로의 데이터를 읽어와서 반영
볼륨 마운트 : A컨테이너에서의 데이터 변경 사항이 그대로 B컨테이너에서 사용 가능
OS에 종속되지 않음
리눅스 파일 구조와 윈도우 파일 구조 등 OS에 따라 차이가 있을 수 있음, 그러나 볼륨은 상관없음 (도커 엔진의 울타리 안에 있음)
보안
호스트PC 털리면 데이터도 털릴 수 있음, 그러나 볼륨은 바로 노출 되는 파일시스템보다 보안성이 훨 뛰어남
그렇지만 개발 중일 때 바인드 마운트를 종종 사용한다는 사람 있음 -> 아마도 데이터에 직접 접근하기 편해서가 아닐까 추측함
볼륨은 컨테이너 접속-> 경로 이동이지만 바인드는 걍 컨테이너 접속 안해도 되거든...
'Docker' 카테고리의 다른 글
[Docker]Docker Container, Image 한번에 삭제feat.쉘 변수 (0) | 2023.12.04 |
---|