MongoError:在Docker中连接ECONNREFUSED

我有我的docker-compose编排,我得到这个错误:

connection error: { MongoError: failed to connect to server [172.17.0.2:27018] on first connect [MongoError: connect ECONNREFUSED 172.17.0.2:27018]

这是server.js的代码:

 mongoose.connect('mongodb://mongodb:27018'); 

这只有当我自定义我的docker容器的command时才会发生:

泊坞窗,compose.yml:

 version: "3" services: app: build: ./my-node-app depends_on: - mongodb mongodb: image: mongo:3.5 command: mongod --port 27018 

如果我删除了--port 27018并指向默认值27017则错误得到修复。

会发生什么?

你错过了:–bind_ip_all

似乎mongod守护进程的更新版本(> 3.5)默认只侦听localhost。

你重写这个 :

 CMD ["mongod", "--bind_ip_all"] 

所以,在你的docker-compose.yml文件中加上"--bind_ip_all"

 mongodb: image: mongo:3.5 command: mongod --port 27018 --bind_ip_all