docker 數據備份於遷移


多個-v就可指定多個掛載目錄
數據卷:
數據卷是一個可供使用的特殊目錄,它繞過文件系統,解決由於容器無守護進程而退出的容器,數據修改保存的問題。特性 :
1.數據卷可以在容器之間共享和重用
2. 對數據卷的修改立馬生效
3.對數據卷的更新不會影響鏡像
4.卷會一直存在直到沒有容器使用 類似於mount掛載
A. 創建數據卷:
docker run時使用-v參數可以再容器內創建一個數據卷
docker run --name data -v /data -t -i centos /bin/bash
查看數據卷對應的宿主機的路徑 : docker inspect data
B. 創建一個宿主機目錄作為數據卷:
docker run -d -P --name web -v 主機目錄:容器目錄 -ti centos /bin/bash
C. 掛載一個本機單文件作為數據卷:
docker run --rm -it -v ~/.bash_history:/.bash_history centos /bin/bash
 
 
數據卷容器
其實僅為一個普通容器,讓其他容器掛載到此容器上。
A.創建數據卷容器/dbdata
docker run -ti -v /dbdata --name dbdata centos

B.讓其他容器db1掛載到此容器:

docker run -ti --volumes-from dbdata --name db1 centos
 
刪除數據卷容器
docker rm dbdata
刪除數據卷
docker rm -v /dbdata
 
數據卷容器遷移數據
備份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker centos
tar -zcvf /backup/backup.tar.gz /dbdata ---新建容器內部執行
利用centos鏡像創建一個worker容器,將worker容器掛載dbdata容器的數據卷,使用-v參數將本地當前目錄掛載到worker容器的/backup目錄。 容器啟動后將backup打包,最后保存在本地目錄。
 
恢復
創建帶數據卷的dbdata2容器
docker run -v /dbdata --name dbdata2 centos -ti /bin/bash
創建一個新的容器掛載到dbdata2
docker run --volumes-from dbdata2 --name huifu -v $(pwd):/backup tar zxvf backup.tar.gz
 


免責聲明!

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



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