Docker學習(九)Volumn容器間共享資料

2021-10-02 07:59:42 字數 1990 閱讀 4776

volume在英文中是容量的意思, 在docker中是資料卷的意思,是用來儲存資料的容器

在集群中有多台tomcat,對於集群中的tomcat部署的**是同乙份**的副本,如果頁面檔案發生變化,意味著每個容器中的頁面檔案都要進行更新,在大規模的集群中這樣的工作量會被無限放大,這時候就需要用到資料共享解決此問題,所謂資料共享指的是多個容器共享乙個資料副本,在docker環境中我們該如何實現?

在宿主機的硬碟上開闢乙個空間,用來存放共享的資料,多個容器共享這個目錄

說到資料共享我們其實很容易想到linux中的mount命令,通過掛載一共享目錄來

準備2個tomcat容器:

tomcat8000tomcat8001

建立共享資料

建立共享目錄:mkdir -p /usr/local/docker/volumn/pages/

在共享目錄中增加共享檔案: index.html,內容如下

我是乙個volumn 共享目錄 albk!
建立tomcat8000tomcat8001驗證容器是否正常啟動

瀏覽器訪問

http://宿主機ip:8000/pages/index.html

http://宿主機ip:8001/pages/index.html

修改共享檔案

echo "我是乙個volumn 共享目錄 albk! 被修改了" > index.html瀏覽器再次驗證

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

掛載共享容器

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實際作用就是定義了乙個掛載點,修改內容的時候,只需要修改共享容器的共享目錄即可

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

Docker篇 九 Docker的儲存管理

docker長時間使用後可能會使預設的儲存目錄 var lib docker不斷增大,導致系統磁碟空間不足,因此需要定期清理過期資料或做資料轉移。root localhost du h var lib docker max depth 1 668k var lib docker containers...

Docker學習 九 埠對映與容器互聯

docker提供了兩個很方便的功能來滿足服務訪問的基本需求 1 允許對映容器內應用的服務埠到本地宿主主機 2 互聯機制實現多個容器間通過容器名來快速訪問 1 從外部訪問容器應用 要讓外部訪問這些應用時,可以通過 p或 p引數來指定埠對映 當使用 p標記時,docker會隨機對映乙個49000 499...

九 docker安裝常見系統

整合了一百多個最常用的linux命令的映象,不到2m。docker search busybox官方下完1.22m docker pull busybox latest執行之後會進入如下所示,可以直接輸入命令,exit退出 root localhost test docker run it busy...