docker定義數據卷及數據卷的備份恢復


前言:生產環境中使用docker時,往往需要對數據進行持久化(只有把容器導出為鏡像,才能夠保存寫的數據,否則容器刪除或者停止,所有數據都會沒有),或者需要在多個容器之間進行數據共享,這必然涉及容器的數據管理操作

容器中管理數據主要有兩種方式:
1、數據卷:容器內數據直接映射到本地主機環境
2、數據卷容器:使用特定容器維護數據卷。能在容器和主機、容器和容器之間共享數據,並實現數據的備份和恢復。

本博客主要圍繞數據卷容器進行開展~~~

 

一、定義數據卷容器

搭建一個專門的數據卷容器,然后其他容器直接掛載該數據卷,實現多個容器之間共享數據(類似NFS)

1、docker images 查看現有的鏡像

 

2、用鏡像 install_net,建立數據卷容器 windysai

docker run -itd -v  /data/docker/  --name  windysai  install_net  bash

(1)-v /data/docker/  :容器里面

(2)windysai 名字任意

3、進入windysai容器

docker exec -it windysai bash

——》會發現容器里面多了一個 /data/docker 的目錄

 

4、用 centos-6-x86_64 掛載windysai數據卷

docker run -itd --volumes-from windysai centos-6-x86_64 bash

(1)進去容器:docker exec -it dfdbe7e8b64 bash

發現存在數據卷容器的目錄   /data/docker

(2)測試

mkdir  /data/docker/test;  touch /data/docker/ljy.txt

 

5、重新進入windysai 容器里

ls  /data/docker 有 test 目錄和文件 ljy.txt

 

、數據卷備份(畫了個圖才比較好理解 = =)

如果做了數據卷(容器內數據直接映射到本地主機環境),那就沒必要做數據卷的備份,只要定時備份服務器硬盤的數據就行

如果沒有做映射 ——》做數據卷的備份

【1】備份

思路:

使用上面的windysai數據卷新開一個容器,同時把本地的 /vol_data_backup/ 目錄掛載到該容器的 /backup 下,這樣在容器中 /backup 目錄里面新建的文件,就可以直接在/vol_data_backup/  目錄中看到了;最后再把 /data/ 目錄下面的文件打包成 data.tar,放到 /backupx 下面

1、在宿主機的磁盤上,創建要備份數據的目錄

 mkdir  /vol_data_backup

 

2、新建容器,掛在數據卷(共享數據卷 windysai 的/data/docker 目錄)

docker run -itd --volumes-from windysai -v /vol_data_backup/:/backup centos-6-x86_64 bash

(1)centos-6-x86_64:新容器

(2)/backup:映射到容器里面的目錄

 

3、docker exec -it 2b6960b5 bash

(1)看到 /backup 為空

(2)/data/docker 存在數據卷分享出來的目錄,也就是我們要備份的目錄

 

 (3)備份

 tar -cvf  /backup/data.tar  /data/docker/

 

4、退出容器exit,查看宿主機目錄

 

三、數據卷恢復

思路:先新建一個數據卷容器,再建一個新的容器餅掛載該數據卷容器,然后再把 tar 包解包

 1、新建第二個數據卷容器

docker run -itd -v  /data/docker/  --name  second install_net  bash

2、掛載數據卷,新建容器

docker run -itd --volumes-from second -v /vol_data_backup/:/backup install_net 

 

 3、進入容器

docker  exec -it da94996d1  bash,  ls /bacukup/

 

 4、在根目錄下解壓

cd /

tar xvf /backup/data_20190110.tar

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM