天天看點

如何共享資料?- 每天5分鐘玩轉 Docker 容器技術(41)

資料共享是 volume 的關鍵特性,本節我們詳細讨論通過 volume 如何在容器與 host 之間,容器與容器之間共享資料。

我們有兩種類型的 data volume,它們均可實作在容器與 host 之間共享資料,但方式有所差別。

對于 bind mount 是非常明确的:直接将要共享的目錄 mount 到容器。具體請參考前面 httpd 的例子,不再贅述。

docker managed volume 就要麻煩點。由于 volume 位于 host 中的目錄,是在容器啟動時才生成,是以需要将共享資料拷貝到 volume 中。請看下面的例子:

如何共享資料?- 每天5分鐘玩轉 Docker 容器技術(41)

<code>docker cp</code> 可以在容器和 host 之間拷貝資料,當然我們也可以直接通過 Linux 的 <code>cp</code> 指令複制到 /var/lib/docker/volumes/xxx。

第一種方法是将共享資料放在 bind mount 中,然後将其 mount 到多個容器。還是以 httpd 為例,不過這次的場景複雜些,我們要建立由三個 httpd 容器組成的 web server 叢集,它們使用相同的 html 檔案,操作如下:

将 $HOME/htdocs mount 到三個 httpd 容器。

如何共享資料?- 每天5分鐘玩轉 Docker 容器技術(41)

檢視目前首頁内容。

如何共享資料?- 每天5分鐘玩轉 Docker 容器技術(41)

修改 volume 中的首頁檔案,再次檢視并确認所有容器都使用了新的首頁。

如何共享資料?- 每天5分鐘玩轉 Docker 容器技術(41)

另一種在容器之間共享資料的方式是使用 volume container,下節讨論。

有個好消息:出版社現在搞促銷,《每天5分鐘玩轉OpenStack》全網最低價銷售,有興趣的同學可以通路 https://detail.tmall.com/item.htm?id=543416839771 了解詳情 。

如何共享資料?- 每天5分鐘玩轉 Docker 容器技術(41)

繼續閱讀