[英]docker backup and restore 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。
問題是您的數據僅容器。 使用不存儲任何mongo db數據的path /mongodb_data
創建卷。 默認情況下,mongo db存儲路徑是/data/db
(根據此 #Where to Store Data Section)
因此,您的mongodb數據不會保存在僅數據容器中。 所以這是一個解決方法:
復制/data/db
到mongodb容器docker exec -it mongo_db bash
/mongodb_data
docker exec -it mongo_db bash
然后是cp -r /data/db/* /mongodb_data/
按照您提到的文檔進行備份
構建一個新的僅數據容器並加載備份
mongo_db
容器並使用僅新數據容器重新創建一個新容器 或者,您可以修改mongodb
配置,將所有數據從/data/db
復制到/mongodb_data
后將默認目錄更改為/mongodb_data
。 您可能會發現這個有用的Changing MongoDB數據存儲目錄
您可以使用此映像為許多作業提供docker容器(導入,導出,轉儲)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.