MongoDB的Docker备份和还原无法恢复任何数据

时间:2017-10-19 20:13:28

标签: mongodb docker

我有工作命令来备份和恢复我的mongodb docker容器的docker卷,我的docker容器的名称是tsl.api.example.db.container

好的,我们走了: 我验证我在名为example的MongoDb集合中有3条记录。

我添加test.txt文件tsl.api.example.db.container的卷/数据/数据库,以帮助证明我正在归档并正确恢复:

docker exec -it tsl.api.example.db.container bash
cd /data/db
touch text.txt

我的备份命令是

docker run --rm --volumes-from tsl.api.example.db.container -v / backup / volumes:/ backup tsl.devops.basic.image tar cvf /backup/backup.tar -C / data / db。

路径/data/db is correct MongoDb路径,是我容器的容量。

我验证了localhost上/ backup / volumes中的backup.tar是否存在: enter image description here

我现在关闭了tsl.api.example.db容器:

docker rm -fv tsl.api.example.db container

然后删除它的悬空音量:

docker volume prune

前两个步骤的屏幕截图: enter image description here

然后我启动一个名为tsl.api.example.db.container.2的新容器,它使用tsl.api.example.db.container使用的相同图像,运行正常,我查询mongodb并且example集合没有记录。< / p>

我使用命令

将卷backup.tar恢复到新容器

docker run --rm --volumes-from tsl.api.example.db.container.2 -v / backup / volumes:/ backup tsl.devops.basic.image bash -c“cd / data / db&amp; ;&amp; tar -xvf /backup/backup.tar“

backup.tar存档已成功解压缩并复制到tsl.api.example.db.container.2的卷/ data / db,我可以看到我的text.txt,以帮助证明我已正确存档并解压缩到新容器的卷中。< / p>

enter image description here

然而,我的示例集合仍然有0条记录,我预计在我存档/ data / db

所以我尝试停止并启动我的新MongoDB容器,看看是否会刷新我的集合:

docker stop tsl.api.example.db.container.2
docker start tsl.api.example.db.container.2

当然,容器不会重新启动,这是最后一个日志条目:

enter image description here

有关在尝试恢复MongoDB Docker容器卷时可能排除哪些文件的任何建议?当我backup.tar时,我应该排除aka not archive mongod.lock吗?还有其他建议吗?

0 个答案:

没有答案