Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
docker备份和恢复mongodb_Mongodb_Docker - Fatal编程技术网

docker备份和恢复mongodb

docker备份和恢复mongodb,mongodb,docker,Mongodb,Docker,创建仅数据容器: docker create -v /mongodb_data --name mongodb_data mongo docker run --volumes-from mongodb_data --name mongo_db --restart always -d mongo 创建monogdb容器: docker create -v /mongodb_data --name mongodb_data mongo docker run --volumes-from mong

创建仅数据容器:

docker create -v /mongodb_data --name mongodb_data mongo
docker run --volumes-from mongodb_data --name mongo_db --restart always -d mongo
创建monogdb容器:

docker create -v /mongodb_data --name mongodb_data mongo
docker run --volumes-from mongodb_data --name mongo_db --restart always -d mongo
然后,要在我自己的容器中使用mongodb,我使用link命令:

--link mongo_db:mongo
所以一切正常。现在我想根据docs:和以下命令备份mongodb:

docker run --volumes-from mongodb_data -v $(pwd):/backup busybox tar cvf /backup/backup.tar /mongodb_data
但是,创建的tar文件只有一个空的
/mongodb_data
文件夹。该文件夹不包含单个文件


有什么想法吗?怎么了?我在ubuntu 14.04 LTS上使用docker 1.7。

问题在于您的数据容器。您使用路径
/mongodb_data
创建卷,该路径不存储任何mongo db数据。默认情况下,mongo db存储路径为
/data/db
(根据#存储数据的位置部分)

因此,mongodb数据不会保存在data only容器中。因此,这里有一个解决方法:

  • /data/db
    复制到您的mongodb容器中的
    /mongodb\u data
    docker exec-it mongo\u db bash
    然后
    cp-r/data/db/*/mongodb\u data/

  • 按照您提到的步骤进行备份

  • 构建新的仅数据容器并加载备份

  • 删除当前的
    mongo_db
    容器,并使用新的仅数据容器重新创建一个新容器
或者,将所有数据从
/data/db
复制到
/mongodb\u data
后,您可以修改
mongodb
配置,将默认目录更改为
/mongodb\u data
。您可能会发现这很有用

您可以使用它为许多作业(导入、导出、转储)提供docker容器