docker备份和恢复mongodb

前端之家收集整理的这篇文章主要介绍了docker备份和恢复mongodb前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

仅创建数据容器:

docker create -v /mongodb_data --name mongodb_data mongo

创建monogdb容器:

docker run --volumes-from mongodb_data --name mongo_db --restart always -d mongo

然后在我自己的容器中使用mongodb我使用link命令:

--link mongo_db:mongo

所以一切正常.现在我想根据docs:http://docs.docker.com/userguide/dockervolumes/#backup-restore-or-migrate-data-volumes和这个命令备份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.

问题是您的数据仅容器.使用不存储任何mongo db数据的path / mongodb_data创建卷.默认情况下,mongo db存储路径为/ data / db(根据this #Where to Store Data Section)

因此,您的mongodb数据不会保存在仅数据容器中.所以这是一个解决方法

>将/ data / db复制到你的mongodb容器中的/ mongodb_data exec -it mongo_db bash然后是cp -r / data / db / * / mongodb_data /
>按照你提到的doc进行备份
>构建新的仅数据容器并加载备份
>删除当前的mongo_db容器,并使用仅新数据容器重新创建一个新容器

或者,您可以修改您的mongodb配置,将所有数据从/ data / db复制到/ mongodb_data后将默认目录更改为/ mongodb_data.你可能会发现这个有用的Changing MongoDB data store directory

原文链接:https://www.f2er.com/docker/436677.html

猜你在找的Docker相关文章