仅创建数据容器:
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 mongo_db:mongo
所以一切正常。现在我想根据文档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。
答案 0 :(得分:4)
问题是您的数据仅容器。您使用不存储任何mongo db数据的路径/mongodb_data
创建卷。默认情况下,mongo db存储路径为/data/db
(根据this #Where to Store Data Section)
因此,您的mongodb数据不会保存在仅限数据的容器中。所以这是一个解决方法:
将/data/db
复制到您的mongodb容器/mongodb_data
中的docker exec -it mongo_db bash
,然后cp -r /data/db/* /mongodb_data/
按照您提到的doc
构建新的仅数据容器并加载备份
mongo_db
容器并使用新数据容器或者,您可以修改mongodb
配置,将所有数据从/mongodb_data
复制到/data/db
后,将默认目录更改为/mongodb_data
。您可能会发现这个有用的Changing MongoDB data store directory
答案 1 :(得分:0)
您可以使用此image为许多作业(导入,导出,转储)提供docker容器