2016-01-15 72 views
28
目的

我試圖去深入我多克的量的瞭解,我有一個很難弄清楚的差異/用例:什麼是容積在Dockerfile

  • docker volume create命令
  • docker run -v /path:/host_path
  • Dockerfile文件中的VOLUME進入

我特別不理解,如果你共同發生什麼用-v標誌將VOLUME條目標記爲mbine。

如果有人很好理解,請解釋我!

回答

23

卷被存儲在/var/lib/docker/volumes/...

  • 一個持久數據您可以在一個Dockerfile,每一個容器從圖像表示時間,這意味着其聲明,體積被創建()即使您沒有任何-v選項。

  • 您可以在運行時聲明它docker run -v [host-dir:]container-dir
    組合兩個(VOLUME + docker run -v)意味着可以安裝在主機的文件夾到您的音量由容器持續的含量在/var/lib/docker/volumes/...

  • docker volume create創建卷,而不必限定Dockerfile和構建的圖像,並且運行一個容器。它用於快速允許其他容器安裝所述卷。

如果你已經堅持卷一些內容,但此後刪除的容器(默認情況下,除非您使用的搬運工RM -v不刪除其關聯卷),就可以重新連接說體積到一個新的容器(聲明相同的體積)。

請參閱「Docker - How to access a volume not attached to a container?」。
使用docker卷創建時,可以很容易地將命名卷重新附加到容器。

docker volume create --name aname 
docker run -v aname:/apath --name acontainer 
... 
# modify data in /apath 
... 
docker rm acontainer 

# let's mount aname volume again 
docker run -v aname:/apath --name acontainer 
ls /apath 
# you find your data back! 
+1

假設你在'VOLUME'和'-v/path:/ host_path /'標誌中使用'Dockerfile'。 'VOLUME'的內容將被'/ host_path /'的內容所覆蓋? – radium226

+0

@ radium226是的。 – VonC

+0

感謝你@VonC,我想我懂了:)如果你做了一個'docker volume create -name my_volume',接着是'docker run -volume-from my_volume',你怎麼知道掛載點將會在哪裏是? – radium226

相關問題