Docker數據管理(一)

數據卷掛載

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

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

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

-v 進行映射vim

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.net

總結:

若是使用文件掛載,當使用vim或者sed  --in-place時候,可能形成inode改變,因此不推薦以文件掛載翻譯


數據卷容器

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

1.生成數據卷容器

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

查看結果
/ # 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

相關文章
相關標籤/搜索