天天看點

Docker:資料卷&資料卷容器

一,概念解析

    1,資料卷:資料卷就是在宿主中可以在容器之間進行共享和重用的一系列和檔案和檔案夾,通過docker run -v指令可以将資料卷挂載到對應的容器目錄空間,進行檔案讀取,容器卷特性如下

        * 資料卷可以在容器之間共享和重用,容器間傳遞資料将變得高效友善

        * 對資料卷内資料的修改會立馬生效,無論是容器内操作還是本地操作

        * 對資料卷的更新不會影響鏡像,解耦了應用和資料

        * 卷會一直存在,直到沒有容器使用,可以安全地解除安裝它

    2,資料卷容器:接資料卷,已經存在一個挂載了資料卷的容器;由于資料卷在容器之前是可以共享的,是以此時如果存在其他容器通過docker run --volumes-from [容器别名]指令挂載到該容器上,則該容器可以被稱之為資料卷容器,其主要功能是提供資料卷供其他容器挂載。當資料卷容器當機後,并不會造成資料卷的回收解除安裝,資料卷會繼續挂載在其他容器中。當全部挂載該資料卷的容器全部當機後,該資料卷才會解除安裝

二,資料卷

    1,建立需要挂載的檔案和檔案夾

Docker:資料卷&資料卷容器
Docker:資料卷&資料卷容器

    2,建立容器,啟動鏡像

docker run -itd -p 8080:8080 \
# 挂載index.html檔案到/docs/index.html并覆寫,
> -v /usr/develop/index.html:/usr/local/tomcat/webapps/docs/index.html \
# 挂載self檔案夾到webapps檔案夾下
> -v /usr/develop/self:/usr/local/tomcat/webapps/docs/ \
--name tomcat_1 tomcat
           

    3,進入容器,檢視檔案内容,檔案内容已經被全部更改

Docker:資料卷&資料卷容器
Docker:資料卷&資料卷容器

    4,頁面通路

Docker:資料卷&資料卷容器
Docker:資料卷&資料卷容器

    5,實時性驗證,此時往主控端的self檔案下添加forth.html檔案

Docker:資料卷&資料卷容器

    6,檢視docker容器資料是否已經同步

Docker:資料卷&資料卷容器

    7,頁面通路

Docker:資料卷&資料卷容器

三,資料卷容器

    1,資料卷操作完成後,docker容器中存在一個已經啟動的tomcat鏡像。并命名為tomcat_1

Docker:資料卷&資料卷容器

    2,現在,以該容器為資料卷容器,重新啟動tomcat鏡像,以該容器為資料卷進行挂載

docker run -itd -p 9090:8080 --volumes-from tomcat_1 --name tomcat_2 tomcat
           

    3,進入該容器檔案路徑檢視對應檔案及檔案内容

Docker:資料卷&資料卷容器

    4,從上一步可以看到檔案已經同步,現在進行資料通路

Docker:資料卷&資料卷容器
Docker:資料卷&資料卷容器

    5,資料卷容器當機示範

        * 資料卷容器當機

Docker:資料卷&資料卷容器

        * 進入挂載容器檢視資料

Docker:資料卷&資料卷容器

        * 并且界面運作正常

Docker:資料卷&資料卷容器