Docker容器中的mongodb正在运行,但是拒绝连接?

时间:2020-05-16 21:02:20

标签: node.js database mongodb docker

错误消息在下面

MongoDB shell version: 3.2.11
connecting to: test
2020-05-16T20:53:47.438+0000 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2020-05-16T20:53:47.440+0000 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:229:14
@(connect):1:6

顺便说一句,有什么方法可以自动在Docker容器中播种数据库?我每次都必须手动为数据库添加种子。

谢谢你们。

2 个答案:

答案 0 :(得分:0)

您是否将localhost的端口映射到MongoDB容器?如果没有,请在您的docker run命令中添加-p 27017:27017。

答案 1 :(得分:0)

如果您希望在初始化时为数据库添加种子,则可以使用docker hub中所述的以下内容:

首次启动容器时,它将执行/docker-entrypoint-initdb.d中带有扩展名.sh和.js的文件。文件将按字母顺序执行。 .js文件将由mongo使用MONGO_INITDB_DATABASE变量指定的数据库执行(如果存在),否则进行测试。您也可以在.js脚本中切换数据库。

如果您使用的是docker-compose,则可以通过-v "./path/to/file.js:/docker-entrypoint-initdb.d/file.js"或mongodb服务的volumes: ["./path/to/file.js:/docker-entrypoint-initdb.d/file.js"]键挂载javascript或shell脚本文件来完成此操作。

相关问题