docker数据卷容器备份、恢复超详细!小白也可以!!!

docker数据卷备份与恢复

在日常生活中,把容器和本地物理机做了目录映射直接存在本地,那么我们只需要对本地的硬盘定期备份就好了,但如果没有这个映射的情况下,备份和恢复该如何处理呢?

首先我们创建一个需要备份的数据卷,

docker run -itd -v /opt/zz --name c1 centos /bin/bash

在这里插入图片描述

-itd 是以交互的方式运行,d是后台运行
-v 是指定容器内的数据卷,如果指定的数据卷不存在,会自动创建
–name 自定义名字
/bin/bash 交互命令以/bin/bash来

为了验证数据卷容器的备份功能,在挂载的/opt/zz目录下创建一个c11文件,并写入内容"woda"。

[root@160e0646396d zz]# touch c11.txt
[root@160e0646396d zz]# echo "woda" > c11.txt 
[root@160e0646396d zz]# cat c11.txt
woda

然后为了给数据卷容器备份,使用 –volumes-from 来标记需要备份的数据卷,并从主机挂载当前目录到容器的/v3目录。
$(pwd)是docker支持的指定当前目录的方法,了解linux基本命令的会发现,linux查看当前目录就是pwd命令。
容器启动后,在当前目录下生成的c23.tar文件就是/opt/zz容器卷的备份文件。
这样,数据卷容器中的数据就备份完成。
整个实践过程如下:

[root@client ~]# docker run --volumes-from c1 -v $(pwd):/v3 centos tar cvf /v3/c23.tar /opt/zz
tar: Removing leading `/' from member names
/opt/zz/
/opt/zz/c11.txt

最后我们就可以看到我们之前在需要备份的容器的数据卷里的内容了,/opt/zz/c11.txt

–volumes-from < Container >: 连接要备份数据的容器
-v $(pwd):/v3:挂载当前路径到容器centos 容器,数据将会备份到此路径
centos: 非常小的镜像
tar cvf /v3/c23.tar /opt/zz: 将 /opt/zz 路径下的文件打包到 c23.tar

二 恢复

备份最终也是为了可以恢复,否则备份就没有意义了,Docker恢复备份也很简单,只需要2步即可。
首先,创建一个带有空数据卷的容器/opt/x2。
docker run -itd -v /opt/x2 --name c3 centos /bin/bash

docker run -itd -v /opt/x2 --name c3 centos /bin/bash

然后,创建另一个容器,挂载data1容器卷中的数据卷,并使用untar解压备份文件到挂载的容器卷中。
docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar
这个时候,之前备份的数据卷容器的数据已经恢复到了容器/opt/x2中了。
为了查看和验证恢复的数据,我们可以再启动一个容器挂载/opt/x2容器卷来查看。
整个实践过程如下:

[root@client ~]# docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar
opt/zz/
opt/zz/c11.txt

最后我们就可以看到我们之前备份的c11.txt,现在已经恢复到c3这个容器中的数据卷了

如果有用的话,记得点赞收藏,评论一条龙哟,嘻嘻
在这里插入图片描述

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