1. 程式人生 > >docker系列之分區掛載和數據卷

docker系列之分區掛載和數據卷

IV pre light name aufs volumes 概念 var home

容器中的文件系統是獨立的, 一旦容器被刪除, 則文件系統也會被刪除. 如果想容器和實體機在文件系統層面打通, 可以把指定目錄掛載到容器當中:

docker run -d -p 5000:22 -v /home/zys/temp:/root/volumn zys:common

  

使用 -v 參數, 就可以把多個實體機目錄掛載到容器的文件系統中.

上面是直觀的目錄掛載. docker 還有自己的一個 數據卷 的概念. 它可以在容器中定義一些目錄, 這些目錄不使用層級的 AUFS 文件系統, 並且這些目錄獨立於容器而存在:

docker run -d -p 5000:22 -v /root/a --name=test zys:common

  

這樣, 其 /root/a 目錄就是一個數據卷, 如果使用 docker inspect 查看容器, 可以看到類似下面的信息:

"Volumes": {
    "/root/a": "/var/lib/docker/vfs/dir/xxx"
},
"VolumesRW": {
    "/root/a": true
}

  

其它的容器可以重用這個數據卷:

docker run -d -p 5000:22 --volumes-from=test zys:common

  

這裏的形式有些別扭啊, 數據卷本來是獨立於容器, 但是要想重用它, 又必須基於容器的名字.

當所有容器被刪除後, 數據卷本身是還存在的, 但是這時好像沒辦法再去直接使用它了, 不過裏面的數據你可以想辦法弄到容器裏去再作下一步處理.

docker系列之分區掛載和數據卷