我是Docker和MongoDb的新手。 我使用下面的命令
为mongodb创建了一个容器sudo docker run -v /data:/data --name my-mongodb -p 4000:27017 --entrypoint=mongod mongo:2.6.6
我在某个文件夹中有转储..我想恢复数据..我尝试了不同的方式,如
sudo docker run -it --link mongotest:db 802e18e53eec mongorestore -h db /path/dump
但没有工作。
它说:
Unable to find image '802e18e53eec:latest' locally
Pulling repository docker.io/library/802e18e53eec
docker: Error: image library/802e18e53eec:latest not found.
See 'docker run --help'.
对此有何帮助?
由于
答案 0 :(得分:4)
我想出了办法
注意:请简要说明您的问题。问题尚不清楚,请指定要在哪里进行还原并将数据还原到服务器数据库或ubuntu运行计算机中。如果从本地数据库进入服务器,请执行以下步骤:-
这是说明
将转储文件夹复制到服务器
scp -r /local_path/to/dump_folder root@111.222.33.4:/remote/path
SSH进入服务器
ssh root@111.222.33.4
从服务器根目录复制到docker容器内部
docker cp dump_folder mongodb:/dump_folder
进入mongodb docker容器
docker exec -it mongodb bash
检查复制的文件夹是否存在
ls
(如果您将其命名为与本示例相同的文件夹,则应该看到dump_folder)
使用mongorestore
mongorestore --drop -d AppName dump_folder
答案 1 :(得分:2)
您必须使用exec
才能在所需的容器中运行命令! run
从图片创建新容器!
答案 2 :(得分:0)
您可以轻松创建转储,并使用MongoDB从容器中获取转储,然后将其还原回而无需连接到容器
docker run --rm mongo:4.1 mongodump --host [container_ip] --archive --gzip | cat > dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
您只需恢复它
cat [name_of_dump_file] | docker run --rm -i mongo:4.1 mongorestore --host [container_ip] --archive --drop --db=test