更多内容请看专栏 【 Docker快速上手 Docker基础 】
备份和导入 Volume 的流程
备份:
1.运行一个 ubuntu 的容器,挂载需要备份的 volume 到容器,并且挂载宿主机目录到容器里的备份目录。
2.运行 tar 命令把数据压缩为一个文件。
3.把备份文件复制到需要导入的机器。迁移(导入):
1.运行 ubuntu 容器,挂载容器的 volume,并且挂载宿主机备份文件所在目录到容器里。
2.运行 tar 命令解压备份文件到指定目录。
目录
下面以MongoDB的数据备份和迁移做演示
Step1:数据备份
Step2:数据迁移
运行一个 mongodb,创建一个名叫mongo-data的 volume 指向容器的 /data 目录,暴露端口01
docker run -p 01:27017 --name mongo -v mongo-data:/data mongo:4.4
也可以让内容在后台输出使用下面命令
docker run -p 01:27017 --name mongo -v mongo-data:/data -d mongo:4.4
接着我们使用Studio 3T for Mongo连接mongo
随便写点数据,参考内容
{
'_id':'u1',
'name':'哈仔康康',
'age':19,
}
现在随便找个地方新建一个文件夹,可以取名叫backup,然后终端输入命令
docker run --rm --volumes-from mongo -v d:/backup(绝对路径):/backup ubuntu tar cvf /backup/backup.tar /data/
指令执行完会在backup下生成一个压缩包,这时候数据就已经备份好了
接下来为了方便做数据迁移的展示我们新生成一个暴露端口为02的
docker run -p 02:27017 --name mongo2 -v mongo-data2:/data -d mongo:4.4
我们可以上Studuio 3T for MongoDB上连接一下
可以看见现在还没有01容器刚才写的test数据库
然后我们将刚才生成的backup的包导入02容器
docker run --rm --volumes-from mongo2 -v d:/backup(绝对路径):/backup ubuntu bash -c "cd /data/ && tar xvf /backup/backup.tar --strip 1"
导入完成后我们刷新一下dm02这个数据库 (注意刚才导入数据的时候自动关闭了02容器需要手动去Docker Desktop重新启动)
成功导入数据!
恭喜你!已经学会了Docker的数据备份和迁移 !