1. 개요
<Docker 가상 환경 구축 입문>의 <Chapter 7-2. volume을 사용해보자>를 읽고 정리한 내용으로,
이번 문서의 주된 내용은 Docker의 마운트 타입 중 하나인 volume의 사용방법입니다.
2. volume의 생성/확인/삭제 커맨드
-
volume 생성
$ docker volume create [volume명]
-
volume 확인
$ docker volume ls $ docker volume inspect [volume명]
-
volume 삭제
$ docker volume rm [volume명]
3. volume을 마운트하기
- volume을 마운트할 때, 존재하지 않는 volume명을 지정하면 새로운 volume을 생성함
- 볼륨을 docker 컨테이너에 마운트하기 위해서는 1) -v 옵션을 사용하는 방법 과 2) --mount 옵션을 사용하는 방법이 있음
-
-v 옵션을 사용하는 방법
-v [volume명]:[마운트 할 path] $ docker run -itd --name c1 -v vol1:/app busybox
-
--mount 옵션을 사용하는 방법
--mount source=[volume명],target=[마운트 할 path] $ docker run -itd --name c2 --mount source=vol1,target=/app busybox
-
컨테이너에 존재하는 디렉토리에 신규 volume을 마운트하면, 해당 디렉토리에 이미 있던 파일이 volume에 복사됨
--mount source=[volume명],destination=[마운트 할 path] $ docker run -itd --name c3 --mount source=vol2,destination=/var busybox
-
volume은 디폴트로 read/write 가능한 상태로 마운트되며, readonly 상태로 지정할 수 있음
--mount source=[volume명],target=[마운트 할 path],readonly $ docker run -itd --name c4 --mount source=vol3,target=/app,readonly busybox $ docker inspect c4 ... "Mounts": [ { "Type": "volume", "Name": "vol3", "Source": "/mnt/sda1/var/lib/docker/volumes/vol3/_data", "Destination": "/app", "Driver": "local", "Mode": "z", "RW": false, "Propagation": "" } ] ...