来自其他容器的 Docker mongo 图像“连接被拒绝”

新手上路,请多包涵

我是码头工人的新手。我正在尝试创建一个 MongoDB 容器和一个 NodeJS 容器。我的文件看起来:

 version: '2'
services:
  backend:
    image: node:5.11-onbuild
    ports:
     - "3001:3001"
    volumes:
     - .:/code
    working_dir: "/code"
    links:
     - mongodb
  mongodb:
    image: mongo:3.3
    expose:
     - 27017

它应该运行 npm install 然后 node . 。但是 docker-compose up[MongoError: connect ECONNREFUSED 127.0.0.1:27017] 而命令 node . 结束。我认为这是因为 bind_ip = 127.0.0.1 文件中的 /etc/mongod.conf 。这是正确的吗?

我在 Win10 系统上使用 boot2docker。

我该如何解决这个问题,以便节点可以连接到 MongoDB?

原文由 Piu130 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 915
2 个回答

在您的后端应用程序中,连接到 mongodb:27017 而不是 127.0.0.1:27017 。其中 ‘mongodb’ 是 docker-compose.yml 中 服务 的名称。

原文由 Thomasleveil 发布,翻译遵循 CC BY-SA 4.0 许可协议

我最近遇到了类似的问题。我在 win 10 下运行 docker 工具箱,这对我来说是这样的:

  1. 我必须验证我的默认 docker 机器使用的是哪个 URL。这可以通过运行 docker-machine ls 命令来检查。它将列出可用的机器:
 NAME             ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default          *        virtualbox   Running   tcp://192.168.99.100:1234           v17.06.0-ce
rancher-client   -        virtualbox   Stopped                                       Unknown
rancher-server   -        virtualbox   Stopped                                       Unknown

2)运行mongodb镜像时指定端口映射

docker run -d -it -p 27017:27017 mongo

  1. 那时有效的 mongo url 看起来像这样
var dbhost = 'mongodb://192.168.99.100:27017/test

其中 192.168.99.100 是第 1 点的默认机器 URL)

希望它能帮助别人。

原文由 Marcin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题