docker(5):數據的管理

Docker的volume卷 爲了能持久話保存和共享容器的數據。docker

  使用docker volume卷的兩種方式centos

  1:數據卷學習

  2:數據卷容器測試

1:數據卷

數據卷:數據卷會繞過docker 的ufs 直接寫在物理設備上,對數據卷的操做能夠及時生效,而且數據卷是能夠進行共享重用的,爲一個或者多個容器提供訪問。數據卷的存在的目的在於永久話保存docker的數據,數據卷獨立於容器的生命週期以外。不會因docker的變化兒產生變化spa

  (1):掛載一個隨機名稱的目錄

  咱們在運行容器的時候 經過使用  -V 來添加 數據卷,也能夠屢次指定掛載多個。日誌

       運行一個主機名爲 centos1 容器名爲centos1 的容器blog

       docker run  -it -v /data -h centos1  --name centos1 centos生命週期

  注:-v /data 咱們掛載了一個名爲data的數據卷 (-h centos1) 指定主機名進程

  

  使用-v 時 docker 守護進程會自動幫助咱們建立一個data文件.這時的data文件其實掛載了宿主機的文件咱們來查看一下宿主機文件的地址:it

  推出容器查看centos1 的 配置信息

        docker inspect centos1  找到Mounts 節點

  

  Source 這裏就是對應的宿主機目錄隨機了一個名稱:默認是可讀寫的,咱們不管是在宿主機中仍是在容器寫入的任何信息,兩邊均可以進行查看。Volume 就是docker 的卷,表明目錄或者文件。

       由於這裏的卷是掛載的宿主機的文件,因此不會隨着容器的銷燬而銷燬.

  (2)掛載一個宿主機的文件或目錄

  docker run -it -v /var/lib/docker/volumes:/volumes -h centos2 --name centos2 centos

  -v /var/lib/docker/volumes:/volumes     

  上面的命令掛載了宿主機 /var/lib/docker/volumes 文件路徑:/volumes 容器的路徑。

  

  看到已經掛載成功了,咱們能夠看多個容器咱們能夠共用一個文件。這樣就能夠避免咱們的數據配置。。。信息丟失,好比咱們能夠分紅存放 程序,日誌,配置等信息

   -v /var/lib/docker/volumes:/volumes:ro 能夠設置只讀,默認是 rw讀寫

2:數據卷容器

  

  (1):使用數據卷:

  咱們運行一個名爲Centos3的容器,而且centos2 做爲一個數據卷容器

  docker run -it  --volumes-from centos2 -h centos3 --name centos3 centos

       參數: --volumes-from   centos2  指定一個卷容器。

  運行成功後咱們查看一下centos3 是否共享了數據卷容器centos2的卷

  

  上圖中咱們能夠看到,centos3和centos2共用了卷。

  爲何使用數據卷

   在生產測試環境中咱們在使用的時候能夠只建立一個容器,不運行任何程序,此容器的做用就是爲了共享數據卷。這個容器就被稱爲數據卷容器。

   注意:在刪除掛載有數據卷容器的時候咱們要加上 -v 選項 ,這樣纔會刪除數據卷,否則出來不會刪除外,還會浪費磁盤空間

   例如:Docker rm -v centos3 當咱們刪除centos3 的時候,他使用的數據卷是不會被刪除的,由於當一個數據卷在被其餘容器使用的時候是不會被刪除的。

  (2):數據卷的備份

  數據卷的備份是經過啓動一個新的容器,在新的容器中執行打包壓縮命令,來實現備份操做的。也就是說這個容器是能夠執行後當即刪除的

  執行下面的命令進行備份:

  docker run --rm --volumes-from centos2 -v /backup:/backup centos tar cvf /backup/volume.tar /volumes

  

  備份完成咱們查找一下備份

  

  查看容器是否存在:

  

  咱們能夠看到當容器執行完命令後就刪除了

  命令選項做用:

  --rm            :容器運行後刪除

  --volumes-from centos2      :備份數據卷容器掛載的全部數據卷

  -v /backup:/backup             :  備份後存放的地址

  tar cvf /backup/volume.tar  :執行備份而且指定備份的名稱

  /volumes       :數據卷容器centos2  掛載的數據卷目錄

有不足之處 但願你們指出相互學習,

            本文原創:轉載請註明出處 謝謝!

相關文章
相關標籤/搜索