Docker Volume介紹

百聯達發表於2017-05-08
一:簡介
Docker映象是由多個檔案系統(只讀層)疊加而成.當我們啟動一個容器的時候,Docker會載入映象層並在其上新增一個讀寫層.如果執行中的容器修改了現有的一個已存在的檔案,那該檔案將會從讀寫層下的只讀層複製到讀寫層,該檔案的只讀版本仍然存在,只是已經被讀寫層中該檔案的副本所隱藏.當刪除Docker容器,並透過該映象重新啟動時,之前的更改將會丟失.在Docker中,只讀層以及在頂部的讀寫層的組合被稱為Union FIle System(聯合檔案系統).

為了能夠儲存(持久化)資料以及共享容器間的資料,Docker提出了Volume的概念.簡單來說,Volume就是目錄或者檔案,它可以繞過預設的聯合檔案系統,而以正常的檔案或者目錄的形式存在於宿主機上.

二:資料卷

1.對映本地伺服器的目錄 到 容器的/data目錄下面
docker run -ti --name myCentos -v /data  centos:latest /bin/bash

docker inspect myCentos

檢視結果  本地伺服器目錄/var/lib/docker/volumes/f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257/_data  被對映到了容器的/data目錄下面

點選(此處)摺疊或開啟

  1. "Mounts": [
  2.             {
  3.                 "Name": "f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257",
  4.                 "Source": "/var/lib/docker/volumes/f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257/_data",
  5.                 "Destination": "/data",
  6.                 "Driver": "local",
  7.                 "Mode": "",
  8.                 "RW": true,
  9.                 "Propagation": ""
  10.             }
  11.         ]
2.容器/data目錄下面的變動資訊,在本地服務中都可以看的到。

3.該-v命令  等同於Dockerfile 檔案中的  VOLUME  /data命令

4.掛載本地伺服器指定目錄到容器目錄中(這是Dockerfile檔案中無法實現的

docker run -ti --name myCentos3 -v /data/docker:/data/docker  centos:latest /bin/bash

三:資料共享&資料卷容器

docker run -ti --name myCentos4 --volumes-from myCentos3  centos:latest /bin/bash

docker run -ti --name myCentos5 --volumes-from myCentos3  centos:latest /bin/bash   VOLUME /data

myCentos4 ,myCentos5 共享容器myCentos3 的資料卷,  myCentos3 是一個專門的資料卷容器。

常見的使用場景是使用純資料容器來持久化資料庫,配置檔案或者資料檔案等。 資料卷容器不需要啟動即可以用來使用。

四:利用資料卷容器對其中的資料捲進行備份和恢復,以實現資料的遷移

備份:
docker run --name myCentos5 --volumes-from myCentos3 -v /backup:/backup  centos:latest tar czvf /backup/backup.tar /data/docker

恢復:
docker run --name myCentos6 -v /data/docker  centos:latest  /bin/bash (建立一個帶有資料卷的容器)

docker run --name myCentos7 --volumes-from myCentos6  -v /backup:/backup  centos:latest  tar xzvf  /backup/backup.tar 

mv . /data/docker

五:刪除資料卷容器

docker rm -v

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2138700/,如需轉載,請註明出處,否則將追究法律責任。

相關文章