數(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)看下面的例子:

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

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 文件,操作如下:

  1. 將 $HOME/htdocs mount 到三個(gè) httpd 容器。
    移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

  2. 查看當(dāng)前主頁(yè)內(nèi)容。
    移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

  3. 修改 volume 中的主頁(yè)文件,再次查看并確認(rèn)所有容器都使用了新的主頁(yè)。
    移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

另一種在容器之間共享數(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