MongooseServerSelectionError ECONNREFUSED 对于多个数据库

问题描述 投票:0回答:1

我有一个带有 Mongoose 的 NodeJS 应用程序,并且有两个要连接的 mongodb 数据库。每个容器都在自己的容器中(app、mongodb1、mongodb2)。

mongodb1
有27017个曝光,
mongodb2
有27018个曝光。

我的应用程序在连接到 mongodb1 时不会抛出任何错误,但在连接到 mongodb2 时抛出 MongooseServerSelectionError ECONNREFUSED。

我使用“mongodb://mongodb2:27018”从应用程序进行连接。

如果我从 Windows 主机使用 MongoDB Compass 连接到“mongodb://localhost:27018”,它可以正常工作。

在应用程序容器中,运行

ping mongodb2
ping mongodb2:27018
时,我得到正常响应。看来是可以达到的。

更多详情:

  • 节点版本:18.19.1
  • 猫鼬版本:8.2.0

docker ps

CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                      NAMES
3d011a43e3d4   app:1.0.0         "docker-entrypoint.s…"   11 minutes ago   Up 11 minutes   0.0.0.0:4030->4030/tcp     app
efad9f43c7f1   custom-mongodb2:1.0.0   "docker-entrypoint.s…"   11 minutes ago   Up 11 minutes   0.0.0.0:27018->27017/tcp   mongodb2
418fbe9bc9c8   custom-mongodb1:1.0.0     "docker-entrypoint.s…"   11 minutes ago   Up 11 minutes   0.0.0.0:27017->27017/tcp   mongodb1
node.js mongodb docker mongoose
1个回答
-1
投票

如何在特定端口运行 mongo docker 实例的答案似乎解决了问题,但我不知道为什么内部端口也必须更改。

© www.soinside.com 2019 - 2024. All rights reserved.