備份步驟
產生 docker-mongodump image
# 下載 docker-mongodump |
直接備份
docker run --rm -v /root/mongodump:/backup --link mongo1:mongo -e MONGO_USERNAME=root -e MONGO_PASSWORD='rootpassword' rammus/mongodump no-cron |
or
新增一個定期備份的 container
docker run -d -v /root/mongodump:/backup --link mongo1:mongo -e MONGO_USERNAME=root -e MONGO_PASSWORD='rootpassword' -e 'CRON_SCHEDULE=0 18 * * *' --name mongodump rammus/mongodump |
恢復備份範例
ATTENTION: 恢復備份不會恢復 admin.system.user
新增一個新的 mongo container
docker run -d --name some-mongo mongo --auth |
將之前備份的資料複製到 container
docker cp 20170621_093135 some-mongo:/ |
進到 container
docker exec -it some-mongo bash |
進到 mongo
mongo |
新增一組 restore 用的帳號
use admin |
Ctrl+C 離開 mongo
> ^C |
開始 mongorestore
mongorestore --gzip --archive=/20170621_093135 -u re -p 're' |
Troubleshooting
如果是使用 mongo --auth
的話, 必須先在 admin 加入 role:restore
才能夠正確的 mongorestore
root@78376710787e:/# mongorestore --gzip --archive=/20170621_093135 |
root@cbeed461ba74:/# mongo |
> use admin |