볼륨은 컨테이너 파일 시스템의 외부입니다. 런타임에 마운트되지만 컨테이너의 데이터는 컨테이너에 저장되지 않습니다. 다음의 예제를 보자 :
[email protected] $ docker volume create --name my-data
이 볼륨을 (아직 용기가) my-data
를 호출되지 만듭니다. 이제 새 컨테이너를 만들고이 볼륨을 컨테이너 내에서 /inside/data
에 마운트합니다.
[email protected] $ docker run -it -v my-data:/inside/data --name container1 alpine:3.3 sh
지금 내 용기 안에 내 쉘, 그래서 나는 폴더 /inside/data
안에 새 파일을 만듭니다.
[email protected] $ cd /inside/data && touch my-file
지금 /inside/data
정말 내 컨테이너 파일 시스템에 아니라, 그 단지에 장착되어, 용기의 외부에 살고있는 볼륨입니다. 내 컨테이너를 중지하고 _don't 경우 있음을 탑재 다시 볼륨, 내 파일이 없습니다.
[email protected] $ exit
[email protected] $ docker run -it --name container2 alpine:3.3 sh
[email protected] $ ls /inside/data
ls: /inside/data: No such file or directory
[email protected] $ exit
실제로 폴더가 없습니다! 나는 그 위치에 아무 것도 올려 놓지 않았기 때문에. 볼륨을 사용 중이므로 데이터가 컨테이너에 유지되지 않습니다. 그러면 어떻게 다시 찾을 수 있습니까? 음 은 볼륨에으로 유지됩니다 (my-data
). 그것을 다른 컨테이너에 마운트하여 보도록하겠습니다 (같은 지점에 마운트 할 필요가 없습니다. 다른 것을 사용할 것입니다).
[email protected] $ docker run -it -v my-data:/different/folder --name container3 alpine:3.3 sh
[email protected] $ ls /different/folder
my-file
[email protected] $ exit
좋아요. 데이터를 가져 와서 다른 컨테이너에 마운트 할 수 있습니다. 그러나 실제로 볼륨의 데이터는 인데이 살고 있습니까? 내 호스트 파일 시스템에서. 우리는 수행하여 확인할 수 있습니다
[email protected] $ docker volume inspect my-data
[
{
"Name": "my-data",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/my-data/_data",
"Labels": {},
"Scope": "local"
}
]
확인을, 그것은 나를 알 수 있도록 내 호스트 시스템에서 해당 볼륨의 위치,의 거기에 무엇이 살펴 보자 (이 루트가 소유하고 있기 때문에 우리는 sudo를 필요).
[email protected] $ sudo ls /var/lib/docker/volumes/my-data/_data
my-file
그리고 파일이 있습니다.