您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Docker如何實(shí)現(xiàn)Volumn容器間共享數(shù)據(jù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
volume是什么
volume在英文中是容量的意思, 在docker中是數(shù)據(jù)卷的意思,是用來保存數(shù)據(jù)的容器
為什么要進(jìn)行數(shù)據(jù)共享
在集群中有多臺(tái)tomcat,對(duì)于集群中的tomcat部署的代碼是同一份代碼的副本,如果頁(yè)面文件發(fā)生變化,意味著每個(gè)容器中的頁(yè)面文件都要進(jìn)行更新,在大規(guī)模的集群中這樣的工作量會(huì)被無限放大,這時(shí)候就需要用到數(shù)據(jù)共享解決此問題,所謂數(shù)據(jù)共享指的是多個(gè)容器共享一個(gè)數(shù)據(jù)副本,在docker環(huán)境中我們?cè)撊绾螌?shí)現(xiàn)?
數(shù)據(jù)共享原理
在宿主機(jī)的硬盤上開辟一個(gè)空間,用來存放共享的數(shù)據(jù),多個(gè)容器共享這個(gè)目錄
實(shí)現(xiàn)數(shù)據(jù)共享的解決方案
說到數(shù)據(jù)共享我們其實(shí)很容易想到linux中的mount命令,通過掛載一共享目錄來
[x] 使用參數(shù) -v 宿主機(jī)目錄:/容器內(nèi)容目錄
將共享的文件放在宿主機(jī)的某個(gè)文件中,然后多個(gè)容器之前共享這一個(gè)目錄,實(shí)現(xiàn)數(shù)據(jù)共享,這需要在啟動(dòng)時(shí)
[x] 使用參數(shù) -v 宿主機(jī)目錄:/容器內(nèi)容目錄
共享容器掛載宿主機(jī)共享目錄,然后通過掛載共享容器實(shí)現(xiàn)數(shù)據(jù)共享
容器直接掛載共享目錄
資源列表
準(zhǔn)備2個(gè)tomcat容器: tomcat8000
tomcat8001
詳細(xì)步驟
創(chuàng)建共享數(shù)據(jù)
創(chuàng)建共享目錄:mkdir -p /usr/local/docker/volumn/pages/
在共享目錄中增加共享文件: index.html,內(nèi)容如下
我是一個(gè)volumn 共享目錄 albk!
創(chuàng)建tomcat8000
和 tomcat8001
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
啟動(dòng)容器時(shí)將宿主機(jī)的/usr/local/docker/volumn
目錄,掛載到tomcat容器的/usr/local/tomcat/webapps
這個(gè)目錄,這樣就可以實(shí)現(xiàn)數(shù)據(jù)共享
驗(yàn)證容器是否正常啟動(dòng)
docke ps
docker exec -it a05a987b6da0 /bin/bash
查看一下webapps目錄下,是否掛載成功
瀏覽器訪問
http://宿主機(jī)ip:8000/pages/index.html
http://宿主機(jī)ip:8001/pages/index.html
修改共享文件
echo "我是一個(gè)volumn 共享目錄 albk! 被修改了" > index.html
瀏覽器再次驗(yàn)證
可以看到我們修改的內(nèi)容,已經(jīng)實(shí)時(shí)生效了,不需要重新部署tomcat容器,但是這樣實(shí)現(xiàn)每次容器啟動(dòng)的時(shí)候,參數(shù)會(huì)很長(zhǎng),很容易出錯(cuò),在集群較小的時(shí)候可以這樣,但是規(guī)模大的時(shí)候,這也是不少的工作量,下面我們看一下另一種方法
共享容器掛載創(chuàng)建一個(gè)共享容器 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
驗(yàn)證過程和上面的一樣,容器webpages實(shí)際作用就是定義了一個(gè)掛載點(diǎn),修改內(nèi)容的時(shí)候,只需要修改共享容器的共享目錄即可
關(guān)于“Docker如何實(shí)現(xiàn)Volumn容器間共享數(shù)據(jù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。