volume在英文中是容量的意思, 在docker中是資料卷的意思,是用來儲存資料的容器
在集群中有多台tomcat,對於集群中的tomcat部署的**是同乙份**的副本,如果頁面檔案發生變化,意味著每個容器中的頁面檔案都要進行更新,在大規模的集群中這樣的工作量會被無限放大,這時候就需要用到資料共享解決此問題,所謂資料共享指的是多個容器共享乙個資料副本,在docker環境中我們該如何實現?
在宿主機的硬碟上開闢乙個空間,用來存放共享的資料,多個容器共享這個目錄
說到資料共享我們其實很容易想到linux中的mount命令,通過掛載一共享目錄來
準備2個tomcat容器:
tomcat8000
tomcat8001
建立共享資料
建立共享目錄:mkdir -p /usr/local/docker/volumn/pages/
在共享目錄中增加共享檔案: index.html,內容如下
我是乙個volumn 共享目錄 albk!
建立tomcat8000
和tomcat8001
驗證容器是否正常啟動
瀏覽器訪問
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...