1. 程式人生 > >如何共享數據?- 每天5分鐘玩轉 Docker 容器技術(41)

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

span -s 銷售 nbsp tle 了解 復制 https 訪問

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

容器與 host 共享數據

我們有兩種類型的 data volume,它們均可實現在容器與 host 之間共享數據,但方式有所區別。

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

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

技術分享

docker cp

可以在容器和 host 之間拷貝數據,當然我們也可以直接通過 Linux 的 cp 命令復制到 /var/lib/docker/volumes/xxx。

容器之間共享數據

第一種方法是將共享數據放在 bind mount 中,然後將其 mount 到多個容器。還是以 httpd 為例,不過這次的場景復雜些,我們要創建由三個 httpd 容器組成的 web server 集群,它們使用相同的 html 文件,操作如下:

  1. 將 $HOME/htdocs mount 到三個 httpd 容器。
    技術分享

  2. 查看當前主頁內容。

    技術分享

  3. 修改 volume 中的主頁文件,再次查看並確認所有容器都使用了新的主頁。
    技術分享

另一種在容器之間共享數據的方式是使用 volume container,下節討論。

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

技術分享

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