由於docker 重啓全部的docker數據都會丟失。怎麼保存數據到本址linux
一、掛載本地的目錄到容器裏(備份):docker run -itd -v /data/:/data centos bash
-v 指定掛載目錄,前面的是宿主機目錄,後面的是容器目錄。建立成功後兩個目錄內容會同步,從面達到備份的目的。docker
二、掛載數據卷centos
其實咱們掛載目錄的時候,能夠指定容器name,若是不指定就隨機定義了。好比上面咱們沒有指定,它就生成了一個名字爲relaxed_franklin,這個名字可使用命令 docker ps 看最右側一列![]bash
docker run -itd --volumes-from relaxed_franklin centos bash
ide
--volumes-from後面跟已啓動的主機名,使用 relaxed_franklin的數據卷。咱們使用了centos 建立了新的容器3d
三、定義數據卷容器
有時候,咱們須要多個容器之間相互共享數據,相似於linux裏面的NFS,因此就能夠搭建一個專門的數據卷容器,而後其餘容器直接掛載該數據卷。
首先創建數據卷容器
docker run -itd -v /data/ --name testvol centos bash //注意這裏的/data/是容器的/data目錄,並不是本地的/data/目錄。 而後讓其餘容器掛載該數據卷
docker run -itd --volumes-from testvol aming123 bashcode
四、數據卷備份恢復
備份
mkdir /data/backup
docker run --volumes-from testvol -v /data/backup/:/backup centos tar cvf /backup/data.tar /data/blog
說明:首先咱們須要使用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 it