Docker는 하나의 이미지로부터 여러 컨테이너를 만들기 위해서 Union File system 을 사용합니다. Union File system은 원본 이미지에 변경된 내용을 추가하는 방식으로, 다른 컨테이너에서 사용할 수 없습니다. 따라서 다른 컨테이너, 혹은 호스트와 데이터를 공유하기 위해 데이터 볼륨을 사용합니다.
docker를 생성하며 -v 옵션으로 호스트OS의 디렉토리를 컨테이너에 마운트할 수 있습니다.
컨테이너가 삭제되어도 호스트OS의 디렉토리에 데이터가 남아있습니다.
--privileged 옵션으로 컨테이너에게 host의 접근 권한을 주어야 쓰기가 가능합니다.
-v {호스트 절대경로}:{컨테이너 절대경로}
--volumes-from 옵션을 사용하면 -v 옵션이 적용된 컨테이너와 같은 볼륨 디렉토리를 공유할 수 있습니다.
도커 볼륨을 이용해 도커 자체에서 제공하는 볼륨 기능을 활용할 수 있습니다.
docker volume create --name myvolume # --name : myvolume 이름의 볼륨 생성
docker volume ls : 볼륨 확인
docker run -it -v hello:/world ubuntu : 이렇게 생성된 볼륨을 다른 컨테이너에서 마운트해서 사용 할 수 있습니다.
생성된 볼륨은 /var/lib/docker/volumes/ 경로 아래에 있습니다.
-v 옵션으로 호스트 디렉토리의 경로를 명시해 주지 않으면 위의 경로에 볼륨의 이름을 랜덤으로 생성해 마운트 합니다.