我如何用本地数据填充dockerized MongoDB?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何用本地数据填充dockerized MongoDB?相关的知识,希望对你有一定的参考价值。
我正在尝试创建带有预填充数据的dockerized MongoDB。这是我用来运行容器的命令:
sudo docker run -d -p 27017:27017 --network test-bridge --name test-mongo -v ~/db-backup:/data/db mongo
很遗憾,〜/ db-backup中的数据在容器内部不可用。我尝试使用mongorestore
,但无法以这种方式访问容器。
创建MongoDB docker容器并用本地计算机中的数据填充它的正确方法是什么?
答案
我希望这种方法有帮助。使用docker-compose设置容器,您可以创建一个mongodb并使用运行如下导入命令的另一个容器进行导入:
mongo:
image: mongo
container_name: mongodb_3.6
hostname: mongo
restart: always
ports:
- "27017:27017"
networks:
- labnet
extra_hosts:
- "locallab:127.0.0.1"
mongo-import:
image: mongo
container_name: mongodb_3.6_import
hostname: mongo-import
depends_on:
- mongo
networks:
- labnet
extra_hosts:
- "locallab:127.0.0.1"
volumes:
- ./workspace:/tmp/workspace
command: >
bash -c " chmod +x /tmp/workspace/scripts/import.sh && /tmp/workspace/scripts/import.sh"
在workspace / scripts文件夹中具有import.sh脚本:
#!/bin/bash
for file in /tmp/workspace/data/*.json; do
echo "Inserting file " $file
mongoimport --host mongo --db dbName --collection collectionName --type json --file $file --jsonArray
done
如果您在.json文件中使用数组格式的文档,则可以导入文档数组。
mongo-import容器完成工作后存在。
欢呼声
以上是关于我如何用本地数据填充dockerized MongoDB?的主要内容,如果未能解决你的问题,请参考以下文章
如何用另一个视图填充主 ViewController 上的 UIView?