Docker數據管理

因爲docker 重啓所有的docker數據都會丟失。怎麼保存數據到本址

1、掛載本地的目錄到容器裏(備份)
docker run -itd -v /data/:/data centos bash
-v 指定掛載目錄,前面的是宿主機目錄,後面的是容器目錄。創建成功後兩個目錄內容會同步,從面達到備份的目的。
Docker數據管理Docker數據管理

2、掛載數據卷

其實我們掛載目錄的時候,可以指定容器name,如果不指定就隨機定義了。比如上面我們沒有指定,它就生成了一個名字爲relaxed_franklin,這個名字可以使用命令 docker ps  看最右側一列![]

docker run -itd --volumes-from relaxed_franklin centos bash

--volumes-from後面跟已啓動的主機名,使用 relaxed_franklin的數據卷。我們使用了centos 創建了新的容器
Docker數據管理

3、定義數據卷容器
有時候,我們需要多個容器之間相互共享數據,類似於linux裏面的NFS,所以就可以搭建一個專門的數據卷容器,然後其他容器直接掛載該數據卷。
首先建立數據卷容器
docker run -itd -v /data/ --name testvol centos  bash  //注意這裏的/data/是容器的/data目錄,並非本地的/data/目錄。 然後讓其他容器掛載該數據卷
docker run -itd  --volumes-from testvol aming123 bash

4、數據卷備份恢復
備份
mkdir /data/backup
docker run --volumes-from testvol -v  /data/backup/:/backup centos tar cvf  /backup/data.tar /data/

說明:首先我們需要使用testvol數據卷新開一個容器,同時我們還需要把本地的/vol_data_backup/目錄掛載到該容器的/backup下,這樣在容器中/backup目錄裏面新建的文件,我們就可以直接在/data/backup/目錄中看到了。 然後再把/data/目錄下面的文件打包到成data.tar文件放到/backup目錄下面。
恢復
思路: 先新建一個數據卷容器,再建一個新的容器並掛載該數據卷容器,然後再把tar包解包。
新建數據卷容器:
docker run -itd -v /data/ --name testvol2 centos bash

掛載數據卷新建容器,並解包:
docker run --volumes-from testvol2  -v /data/backup/:/backup centos tar xf /backup/data.tar
Docker數據管理

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