因爲docker 重啓所有的docker數據都會丟失。怎麼保存數據到本址
1、掛載本地的目錄到容器裏(備份):docker run -itd -v /data/:/data centos bash
-v 指定掛載目錄,前面的是宿主機目錄,後面的是容器目錄。創建成功後兩個目錄內容會同步,從面達到備份的目的。
2、掛載數據卷
其實我們掛載目錄的時候,可以指定容器name,如果不指定就隨機定義了。比如上面我們沒有指定,它就生成了一個名字爲relaxed_franklin,這個名字可以使用命令 docker ps 看最右側一列![]
docker run -itd --volumes-from relaxed_franklin centos bash
--volumes-from後面跟已啓動的主機名,使用 relaxed_franklin的數據卷。我們使用了centos 創建了新的容器
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