首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Docker容器中启动时创建新的Mongodb?

如何在Docker容器中启动时创建新的Mongodb?
EN

Stack Overflow用户
提问于 2016-11-12 05:07:27
回答 1查看 2K关注 0票数 0

非常简单的Dockerfile:

代码语言:javascript
复制
FROM mongo:3.2.10

#create DB directory
RUN mkdir -p /data/db

EXPOSE 27017

CMD ["mongod"]

当我运行容器时,我想自动创建一个名为"CBDB"的DB。我不想手动运行mongo shell,希望自动创建新的DB。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-11-12 07:20:12

您可以将mongo作为守护进程执行,并编写在入口点中执行的脚本。

https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/

作为一个简单的例子,使用这个Dockerfile和入口点:

代码语言:javascript
复制
FROM mongo:3.2.10

#create DB directory
RUN mkdir -p /data/db

EXPOSE 27017

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["./entrypoint.sh"]

在入口点中,您可以将mongo用作守护进程,并执行一个一行程序来创建数据库和集合。记住使用tail (或类似supervisord的命令)来确保容器不会被停止:

代码语言:javascript
复制
#!/bin/bash
mongod --fork --logpath /var/log/mongo.log
mongo --eval "db = db.getSiblingDB('new_db'); db.createCollection('new_collection');"
tail -f /var/log/mongo.log
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40556237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档