如何将已还原的数据库持久保存在容器中,以便可以重复使用

时间:2019-10-03 15:58:09

标签: mongodb docker mongodump mongorestore

构建docker映像时,我使用mongodump将外部数据库转储到容器内的目录中,然后启动mongodb并执行还原(mongorestore)。看到日志时,一切似乎都正常。我的目标是在数据库中提供包含数据的docker映像,该数据可以与预填充的数据一起启动。这样,我的最终用户可以与Web应用程序一起“玩”它。请注意,我想知道Web应用程序是否可以更新此数据..在我的用例中,容器停止后丢失数据不是问题。

这是完整的dockerfile

FROM mongo

RUN mongodump --verbose --uri="mongodb://....."  --out=./izidump2

RUN mongod --fork --dbpath /data/db --logpath /var/log/mongodb.log;  \
     mongorestore --uri="mongodb://localhost:27017/mydb" --verbose ./izidump2;  \
     mongo --eval "db.createUser({ user: 'root', pwd: 'root', roles: ['readWrite', 'dbAdmin'] })" mydb;

不幸的是,在运行容器时,数据库不存在。 连接到正在运行的容器的实例并转到/ data / db时,该目录为空。很奇怪,因为我已经还原了该目录中的数据,并且在运行mongo restore时没有收到任何投诉。

我想念什么?

0 个答案:

没有答案