Docker 基礎入門+實例(4)-數據卷

數據管理

在使用docker過程當中,須要能查看容器內應用產生的數據,或者須要把容器內的數據進行備份,多個容器數據進行共享,這就設計到了數據管理。
兩種方式web

  • 數據卷(data vloumes)
  • 數據卷容器(data volome containers)(不推薦)docker

    數據卷 掛在卷

    數據卷是一個可供容器使用的特殊目錄,它繞過文件系統,能夠提供不少有用的特性。centos

  • 能夠再不一樣容器間共享和重用app

  • 修改後立刻生效
  • 對數據卷更新,不會影響鏡像
  • 卷會一直存在,直到容器沒有使用webapp

    數據卷相似於Linux下對目錄或文件進行的mount(掛載)操做spa

在容器建立一個數據卷.net

docker run時 -v標記能夠在容器內建立一個數據卷。屢次使用能夠建立多個數據卷設計

掛載一個主機目錄做爲數據卷code

docker run -d -p --name web --privilegde=true -v /yundata/webapps:/opt/webapp/mycentos

-d:後臺運行
–nem : 容器名字設置爲web
-v 將主機 /yundata/webapps目錄掛載到容器內/opt/webapp目錄上
–privileged=true容許訪問宿主主機的特權blog

注意:本地目錄路徑爲絕對路徑,目錄不存在會自動建立

Docker掛載的數據卷默認權限是讀寫(rw),用用戶也能夠,ro指定爲只讀。

docker run -d -P --name web --privileged=true -v /yundata/webapps:/opt/
webapp:ro mycentos

加入入了了:ro以後,容器器內掛載的數據卷的數據就無沒法修改了了。

數據卷容器
若是用用戶須要在容器器之間共享一一些持續更更新的數據,最簡單的方方式是使用用數據卷容器器,數據卷容器器其實就是一一個普通的容器器,專⻔門用用它提供數據卷供其餘容器器掛載使用用。
案例:建立一一個數據卷容器器,並將其掛載到兩個容器器中,共享。

step 1:建立數據卷容器器,並建立數據卷dbdata目目錄,同時,將數據卷容器器命名爲dbdata

docker run -d -v /dbdata --name dbdata mycentos

step2:將數據卷容器,掛載到兩個容器中,使用-volumes-from來掛載dbdata容器中的數據卷

docker run -d --volumes-from dbdata --name db1 mycentos
docker run -d --volumes-from dbdata --name db2 mycentos

此時,容器器db1和db2都掛載同一一個數據捲到相同的/dbdata目目錄。三個容器器任何一一方方在該目目錄下的寫入入,其餘容器器均可以看到。

屢次使用用—volumes-from參數來從多個容器器掛載多個數據卷。還能夠從其餘已經掛載了了容器器卷的容器器來掛載數據卷

docker run -d --name db3 --volumes-from db1 mycentos

注意:使用用—volumes-from參數所掛載數據卷的容器器自身並不須要保持在運行狀態。

刪除時,必須刪除最後一個掛載容器, docker rm -v來刪除關聯的容器

*經過數據卷和數據卷容器器對容器器內數據進行行行共享等操做,經過這些機制,即便容器器在運行行行中出
現故障,用用戶也不沒必要擔憂心數據發生生丟失,只須要快速建立容器器便可。*
Dokcer基礎入門+實例(1)
Dokcer基礎入門+實例(2)
Dokcer基礎入門+實例(3)
Dokcer基礎入門+實例(4)
Dokcer基礎入門+實例(5)

相關文章
相關標籤/搜索