簡體   English   中英

docker備份和恢復mongodb

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM