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