仅创建数据容器:
docker create -v /mongodb_data --name mongodb_data mongo
Run Code Online (Sandbox Code Playgroud)
创建monogdb容器:
docker run --volumes-from mongodb_data --name mongo_db --restart always -d mongo
Run Code Online (Sandbox Code Playgroud)
然后在我自己的容器中使用mongodb我使用link命令:
--link mongo_db:mongo
Run Code Online (Sandbox Code Playgroud)
所以一切正常.现在我想根据文档备份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
Run Code Online (Sandbox Code Playgroud)
但是,创建的tar文件只有一个空/mongodb_data文件夹.该文件夹不包含单个文件.
任何想法都错了吗?我在ubuntu 14.04 LTS上使用docker 1.7.
小智 6
问题是您的仅数据容器。您使用/mongodb_data不存储任何mongo db数据的路径制作卷。默认情况下,mongo db存储路径为/data/db(根据此 #Where to Store Data部分)
结果,您的mongodb数据未保存在仅数据的容器中。所以这是一种解决方法:
复制/data/db到/mongodb_data您的mongodb容器中,docker exec -it mongo_db bash然后cp -r /data/db/* /mongodb_data/
按照您提到的文档进行备份
建立一个新的仅数据容器并加载备份
mongo_db容器,并使用新的仅数据容器重新创建一个新容器或者,您可以修改mongodb配置,/mongodb_data将所有数据从复制到后,将默认目录更改/data/db为/mongodb_data。您可能会发现此有用的更改MongoDB数据存储目录
| 归档时间: |
|
| 查看次数: |
5571 次 |
| 最近记录: |