數(shù)據(jù)共享是 volume 的關(guān)鍵特性,本節(jié)我們?cè)敿?xì)討論通過(guò) volume 如何在容器與 host 之間,容器與容器之間共享數(shù)據(jù)。
容器與 host 共享數(shù)據(jù)
我們有兩種類(lèi)型的 data volume,它們均可實(shí)現(xiàn)在容器與 host 之間共享數(shù)據(jù),但方式有所區(qū)別。
對(duì)于 bind mount 是非常明確的:直接將要共享的目錄 mount 到容器。具體請(qǐng)參考前面 httpd 的例子,不再贅述。
docker managed volume 就要麻煩點(diǎn)。由于 volume 位于 host 中的目錄,是在容器啟動(dòng)時(shí)才生成,所以需要將共享數(shù)據(jù)拷貝到 volume 中。請(qǐng)看下面的例子:
docker cp
可以在容器和 host 之間拷貝數(shù)據(jù),當(dāng)然我們也可以直接通過(guò) Linux 的 cp
命令復(fù)制到 /var/lib/docker/volumes/xxx。
容器之間共享數(shù)據(jù)
第一種方法是將共享數(shù)據(jù)放在 bind mount 中,然后將其 mount 到多個(gè)容器。還是以 httpd 為例,不過(guò)這次的場(chǎng)景復(fù)雜些,我們要?jiǎng)?chuàng)建由三個(gè) httpd 容器組成的 web server 集群,它們使用相同的 html 文件,操作如下:
將 $HOME/htdocs mount 到三個(gè) httpd 容器。
查看當(dāng)前主頁(yè)內(nèi)容。
修改 volume 中的主頁(yè)文件,再次查看并確認(rèn)所有容器都使用了新的主頁(yè)。
另一種在容器之間共享數(shù)據(jù)的方式是使用 volume container,下節(jié)討論。
有個(gè)好消息:出版社現(xiàn)在搞促銷(xiāo),《每天5分鐘玩轉(zhuǎn)OpenStack》全網(wǎng)最低價(jià)銷(xiāo)售,有興趣的同學(xué)可以訪(fǎng)問(wèn) https://detail.tmall.com/item.htm?id=543416839771 了解詳情 。
http://www.cnblogs.com/CloudMan6/p/7163399.html