登录到 centos
ssh root@139.9.212.113
导出 centos docker mongodb 数据到 centos
进入 centos 上的 docker mongodb
docker exec -it mongodb_container_id /bin/bash
导出 mongodb 数据到 mongodb 容器内
mongodump -h 127.0.0.1:27017 --archive=/home/db.gz --gzip -d=db
- -h 表示 host
- -d 表示 database
- --gzip 表示压缩
- 更多备份内容
导出到 mongodb 中的数据拷贝到 centos
docker cp mongodb_container_id:/home/db.gz /home
- mongodb_container_id:mongodb 容器 id
- /home/db.gz:mongodb 容器内备份的路径
- /home:导出到 centos 的路径
本地电脑下载 centos 上备份的 mongodb 数据
- 在 mac 本地的 zsh 中执行 scp 命令
scp root@139.x.xxx.xxx:/home/auto.gz ~/work
- root@139.x.xxx.xxx:表示 centos 登录的账号和 ip
- /home/auto.gz 表示上面导出到 centos 的 mongodb 的数据路径
- ~/work 表示导出到本地 mac 的路径
导入数据到本地 docker mongodb
- 拷贝上一步导出到本地的 mongodb 数据到 mac 的 docker mongodb 中
docker cp ~/work/db.gz mac_docker_mongodb_container_id:/home/
- ~/work/db.gz:表示 mac 中的数据路径
- mac_docker_mongodb_container_id:mac 上 docker mongodb 的 container id
- /home/:表示 mac 上 docker 中 mongodb 容器中备份路径
测试数据
mongorestore --gzip --archive=/home/db.gz dump/ --dryRun --verbose
- --dryRun 表示演习一下
- --verbose 显示执行详情
- 注:去掉 --dryRun --verbose 才算真的恢复数据
上面如果测试成功的话,执行:
mongorestore --gzip --archive=/home/db.gz dump/