MongoError:在Docker中连接ECONNREFUSED

时间:2017-06-12 23:39:27

标签: mongodb docker docker-compose

我有我的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,错误就会得到解决。

可能会发生什么?

1 个答案:

答案 0 :(得分:2)

你错过了:--bind_ip_all

mongod守护程序的newer版本(> 3.5)似乎默认只监听localhost。

你最重要的是this

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

所以,也将"--bind_ip_all"放入你的docker-compose.yml:

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