佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Docker Volumn容器間共享數(shù)據(jù)的實現(xiàn)

Docker Volumn容器間共享數(shù)據(jù)的實現(xiàn)

熱門標簽:檢查注冊表項 百度競價點擊價格的計算公式 網(wǎng)站建設(shè) 美圖手機 智能手機 阿里云 硅谷的囚徒呼叫中心 使用U盤裝系統(tǒng)

volume是什么

volume在英文中是容量的意思, 在docker中是數(shù)據(jù)卷的意思,是用來保存數(shù)據(jù)的容器

為什么要進行數(shù)據(jù)共享

在集群中有多臺tomcat,對于集群中的tomcat部署的代碼是同一份代碼的副本,如果頁面文件發(fā)生變化,意味著每個容器中的頁面文件都要進行更新,在大規(guī)模的集群中這樣的工作量會被無限放大,這時候就需要用到數(shù)據(jù)共享解決此問題,所謂數(shù)據(jù)共享指的是多個容器共享一個數(shù)據(jù)副本,在docker環(huán)境中我們該如何實現(xiàn)?

數(shù)據(jù)共享原理

在宿主機的硬盤上開辟一個空間,用來存放共享的數(shù)據(jù),多個容器共享這個目錄

實現(xiàn)數(shù)據(jù)共享的解決方案

說到數(shù)據(jù)共享我們其實很容易想到linux中的mount命令,通過掛載一共享目錄來

[x] 使用參數(shù) -v 宿主機目錄:/容器內(nèi)容目錄 將共享的文件放在宿主機的某個文件中,然后多個容器之前共享這一個目錄,實現(xiàn)數(shù)據(jù)共享,這需要在啟動時

[x] 使用參數(shù) -v 宿主機目錄:/容器內(nèi)容目錄共享容器掛載宿主機共享目錄,然后通過掛載共享容器實現(xiàn)數(shù)據(jù)共享

容器直接掛載共享目錄

資源列表

準備2個tomcat容器:
tomcat8000 tomcat8001

詳細步驟

創(chuàng)建共享數(shù)據(jù)

創(chuàng)建共享目錄:mkdir -p /usr/local/docker/volumn/pages/
在共享目錄中增加共享文件: index.html,內(nèi)容如下

我是一個volumn 共享目錄 albk!

創(chuàng)建tomcat8000tomcat8001

docker run -d --name tomcat8000 -p 8000:8080 -v /usr/local/docker/volumn:/usr/local/tomcat/webapps tomcat

docker run -d --name tomcat8001 -p 8001:8080 -v /usr/local/docker/volumn:/usr/local/tomcat/webapps tomcat
啟動容器時將宿主機的/usr/local/docker/volumn目錄,掛載到tomcat容器的/usr/local/tomcat/webapps 這個目錄,這樣就可以實現(xiàn)數(shù)據(jù)共享

驗證容器是否正常啟動

docke ps 

docker exec -it a05a987b6da0 /bin/bash
查看一下webapps目錄下,是否掛載成功

瀏覽器訪問
http://宿主機ip:8000/pages/index.html
http://宿主機ip:8001/pages/index.html

修改共享文件

echo "我是一個volumn 共享目錄 albk! 被修改了" > index.html

瀏覽器再次驗證

可以看到我們修改的內(nèi)容,已經(jīng)實時生效了,不需要重新部署tomcat容器,但是這樣實現(xiàn)每次容器啟動的時候,參數(shù)會很長,很容易出錯,在集群較小的時候可以這樣,但是規(guī)模大的時候,這也是不少的工作量,下面我們看一下另一種方法

共享容器掛載創(chuàng)建一個共享容器 webpages,通過上述的方法,使用-v 掛載共享目錄

docker create --name webpages -v /usr/local/docker/volumn/pages:/usr/local/tomcat/webapp tomcat /bin/true

掛載共享容器

docker run --name tomcat8000 -d -p 8000:8080 --volumes-from webpages tomcat 
docker run --name tomcat8001 -d -p 8001:8080 --volumes-from webpages tomcat
驗證過程和上面的一樣,容器webpages實際作用就是定義了一個掛載點,修改內(nèi)容的時候,只需要修改共享容器的共享目錄即可

總結(jié)

如果容器少的話用-v 如果容器多的話, 可以使用-volumes-from 本質(zhì)與-v是一樣的,具體使用哪個根據(jù)實際情況而定

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:黃山 山南 賀州 懷化 湖北 通遼 湘潭 煙臺

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Docker Volumn容器間共享數(shù)據(jù)的實現(xiàn)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    衡南县| 宣威市| 磐石市| 洪雅县| 始兴县| 晴隆县| 黄石市| 上蔡县| 兖州市| 永安市| 晋中市| 和平县| 阿拉善盟| 奇台县| 崇义县| 金昌市| 松原市| 沙湾县| 尤溪县| 武鸣县| 朝阳市| 福鼎市| 平安县| 庆阳市| 金山区| 长子县| 孟州市| 丽江市| 铜川市| 万州区| 上思县| 镇雄县| 察隅县| 永昌县| 德格县| 丰城市| 陵水| 南平市| 永顺县| 新巴尔虎左旗| 吉林市|