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容器中。因此,这里有一个解决方法:
- 将
复制到您的mongodb容器中的/data/db
/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容器