Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将mongoDb collection BSON备份文件恢复到docker abernix/meteord:node-8.4.0-base?_Mongodb_Docker_Ubuntu - Fatal编程技术网

如何将mongoDb collection BSON备份文件恢复到docker abernix/meteord:node-8.4.0-base?

如何将mongoDb collection BSON备份文件恢复到docker abernix/meteord:node-8.4.0-base?,mongodb,docker,ubuntu,Mongodb,Docker,Ubuntu,我使用以下命令从mongoDb集合进行了备份 mongodump -h 127.0.0.1 --port 9001 -d meteor -c products scp -r dump root@66.204.148.25:/root docker exec -i mongodb mongorestore -d mew -c audioQuestions_Joker dump/meteor 我已使用以下命令将转储文件夹递归复制到我的服务器 mongodump -h 127.0.0.1 --p

我使用以下命令从mongoDb集合进行了备份

mongodump -h 127.0.0.1 --port 9001 -d meteor -c products
scp -r dump root@66.204.148.25:/root
docker exec -i mongodb mongorestore -d mew -c audioQuestions_Joker dump/meteor
我已使用以下命令将转储文件夹递归复制到我的服务器

mongodump -h 127.0.0.1 --port 9001 -d meteor -c products
scp -r dump root@66.204.148.25:/root
docker exec -i mongodb mongorestore -d mew -c audioQuestions_Joker dump/meteor
我无法使用以下命令还原

mongodump -h 127.0.0.1 --port 9001 -d meteor -c products
scp -r dump root@66.204.148.25:/root
docker exec -i mongodb mongorestore -d mew -c audioQuestions_Joker dump/meteor
文件在那里,但我得到以下消息 2020-01-12T11:38:10.863+0000失败:mongorestore目标“dump/meteor”无效:stat dump/meteor:没有这样的文件或目录

从BSON文件恢复集合备份的正确命令是什么

仅供参考docker abernix/meteord:node-8.4.0-base


谢谢

您需要拥有
sudo
特权

1修改MongoDB容器的
docker compose.*
文件并添加新卷

假设你有这样的东西:

 mongo:
    image: mongo:4.2
    container_name: mongodb
    ports:
      - 27017:27017
    volumes:
      - "./local/path:/data/db"
      - "./local/tmp/path:/home"
    restart: always
    command: --auth
2您需要
build

sudo docker-compose -f docker-compose.yml up -d
3在
/local/tmp/path
中复制您的
转储
文件夹,并检查MongoDB容器是否有权访问该文件夹

sudo docker ps
sudo docker exec -it mongodb_CONTAINER ID /bin/bash
# ls /home - If you see there dump folder, continue step 4
4现在,执行MongoDB恢复(您可以在MongoDB容器中执行)


5如果恢复成功,请再次更新docker compose并删除
-“/local/tmp/path:/home”
和build。

这是因为docker在mongodb容器中搜索
dump/meteor
,但我如何恢复主机上而非容器上的文件?