Docker數據管理(一)

數據卷掛載

在生產環境中,需要對數據進行持久化,冗餘化,或者在需要在多個容器之間進行數據共享

數據卷:容器內數據直接映射到本地主機環境

數據卷容器:使同特定容器維護數據卷

-v 進行映射

1.在容器內生成一個數據卷

docker run -id --rm --name dbdata  -v dbdata docker.io/busybox

2.掛載主機目錄作爲數據卷,  將webroot掛載到容器的test中(絕對路徑)

 docker run -id --rm --name  -P web -v /root/webroot:/test docker.io/busybox

3.掛載一個本機文件作爲數據卷, 將web.xml掛載到容器的test中(不推薦)

docker run -id --rm --name  -P web -v /root/web.xml:/test docker.io/busybox

總結:

如果使用文件掛載,當使用vim或者sed  --in-place時候,可能造成inode改變,所以不推薦以文件掛載


數據卷容器

生成一個專門放數據的容器,這個數據卷容器可以在多個容器之間共享一些持續更行的數據

1.生成數據卷容器

docker run -it --name dbdata -v /dbdata docker.io/busybox

查看結果
/ # ls
bin     dbdata  dev     etc     home    proc    root    run     sys     tmp     usr     var

2.創建其他容器,其實可用到 --volumes-from來掛載dbdata容器中的數據卷

docker run -it --name web1 --volumes-from dbdata docker.io/busybox
docker run -it --name web2 --volumes-from dbdata docker.io/busybox

在其中一個容器中創建一個文件,可以在另外兩個看到

總結:

可以多次使用--volumes-from來掛載dbdata,也可以從其他已經掛載的容器卷的容器掛載數據卷

如果刪除了掛載的容器(包括dbdata,web1,web2),數據卷並不會被刪除.只有刪除最後一個還掛載着它的容器 顯示使用docker rm -v 命令來指定 同時刪除關聯的容器


利用數據捲來遷移數據


利用數據容器對其中的數據捲進行備份,恢復以實現數據遷移

1.備份


docker run --volumes-from dbdata -v /root/back:/backup --name back docker.io/busybox tar -cvf /backup/backup.tar /dbdata

利用目錄掛載,就可以把備份放到物理機的/root/back裏了

2.恢復


 docker run --volumes-from dbdata -v /root/back:/backup --name recover docker.io/busybox tar -xvf /backup/backup.tar

總結:
    通過數據卷和數據卷容器對容器內數據進行共享,備份,恢復等操作,即使出現了運行故障,用戶也不必擔心數據丟失,只需要快速創建容器即可
    在生產環境中,定期在物理機上進行數據備份,使用支持容錯的存儲系統(RAID,分佈式文件系統{Ceph,GPFS,HDFS}).可以大大提升數據安全

 

入門容器操作見https://blog.csdn.net/Nedved_L/article/details/79067732

 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章