码头备份和恢复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
所以一切正常。 现在我想根据文档备份mongodb:http://docs.docker.com/userguide/dockervolumes/#backup-restore-or-migrate-data-volumes和这个命令:
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。
问题是你的数据只有容器。 您可以使用path /mongodb_data
创建卷,该路径不存储任何mongo db数据。 默认情况下,mongo数据库存储路径是/data/db
(根据此#存储数据部分)
因此,您的mongodb数据不会保存在您的仅数据容器中。 所以这是一个解决方法:
复制/data/db
到你的mongodb容器中的/mongodb_data
docker exec -it mongo_db bash
然后cp -r /data/db/* /mongodb_data/
按照您提到的文档进行备份
构建一个新的仅用于数据的容器并加载备份
mongo_db
容器并用新的仅数据容器重新创建一个新容器 或者,您可以修改您的mongodb
配置,将所有数据从/data/db
复制到/mongodb_data
后将缺省目录更改为/mongodb_data
。 您可能会发现这个有用的更改MongoDB数据存储目录
您可以使用此图像为许多作业提供码头容器(导入,导出,转储)
链接地址: http://www.djcxy.com/p/86565.html上一篇: docker backup and restore mongodb
下一篇: Simple string compression: removing consecutive repeating substrings