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

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

好的,我们开始吧:我确认在一个名为example的MongoDb集合中有3条logging。

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

 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。

path/data/db 是正确的 MongoDbpath,是我的容器的音量。

我validationbackup.tar存在于localhost上的/ backup / volumes中: 在这里输入图像说明

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

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

然后删除它的悬挂量:

 docker volume prune 

前两个步骤的屏幕截图: 在这里输入图像说明

然后我开始一个名为tsl.api.example.db.container.2的新容器,它使用tsl.api.example.db.container.2使用的相同的图像,它运行正常,我查询mongodb和example集合没有logging。

我用命令将volume 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 && tar -xvf /backup/backup.tar”

backup.tar归档文件被成功解压缩并复制到tsl.api.example.db.container.2的volume / data / db中,我可以看到我的text.txt文件,以帮助certificate我已经正确地归档并解压到新的容器卷。

在这里输入图像说明

然而,我的示例集合仍然有0个logging,我期待在我的第一个容器中存在的3个logging,当我archived / data / db

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

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

当然,容器不会启动,这里是最后的日志条目:

在这里输入图像说明

有关在尝试还原MongoDB Docker容器卷时可能排除哪些文件的build议? 我应该排除又名不备份mongod.lock当我backup.tar? 还有其他build议吗?