我試圖去深入我多克的量的瞭解,我有一個很難弄清楚的差異/用例:什麼是容積在Dockerfile
- 該
docker volume create
命令 - 的
docker run -v /path:/host_path
- 在
Dockerfile
文件中的VOLUME
進入
我特別不理解,如果你共同發生什麼用-v
標誌將VOLUME
條目標記爲mbine。
如果有人很好理解,請解釋我!
我試圖去深入我多克的量的瞭解,我有一個很難弄清楚的差異/用例:什麼是容積在Dockerfile
docker volume create
命令docker run -v /path:/host_path
Dockerfile
文件中的VOLUME
進入我特別不理解,如果你共同發生什麼用-v
標誌將VOLUME
條目標記爲mbine。
如果有人很好理解,請解釋我!
卷被存儲在/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!
假設你在'VOLUME'和'-v/path:/ host_path /'標誌中使用'Dockerfile'。 'VOLUME'的內容將被'/ host_path /'的內容所覆蓋? – radium226
@ radium226是的。 – VonC
感謝你@VonC,我想我懂了:)如果你做了一個'docker volume create -name my_volume',接着是'docker run -volume-from my_volume',你怎麼知道掛載點將會在哪裏是? – radium226