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


數據共享是 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 容器。
    201.png

  2. 查看當前主頁內容。

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

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

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

二維碼+指紋.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM