【问题标题】:Connecting to Mongodb docker container from another docker container从另一个 docker 容器连接到 Mongodb docker 容器
【发布时间】:2019-02-24 07:19:10
【问题描述】:

我正在尝试从运行我的节点 js 代码的另一个 docker 容器连接在 docker 容器中运行的 mongo DB。

所以我使用以下命令运行 MongoDB docker:

docker run --name my-local-mongo -v mongo-data:/data/db -p 27017:27017 -d mongo

我可以从浏览器输入0.0.0.0:27017 访问,但是当我尝试从节点 js 代码连接时,我收到以下错误。我的 url 变量是:

var url = "mongodb://0.0.0.0:27017/surveydb";

{ MongoNetworkError: failed to connect to server [0.0.0.0:27017] on first connect [MongoNetworkError: connect **ECONNREFUSED 0.0.0.0:27017**]
    at Pool.<anonymous> (/usr/src/appg08/node_modules/mongodb-core/lib/topologies/server.js:564:11)
    at Pool.emit (events.js:182:13)
    at Connection.<anonymous> (/usr/src/appg08/node_modules/mongodb-core/lib/connection/pool.js:317:12)
    at Object.onceWrapper (events.js:273:13)
    at Connection.emit (events.js:182:13)
    at Socket.<anonymous> (/usr/src/appg08/node_modules/mongodb-core/lib/connection/connection.js:246:50)
    at Object.onceWrapper (events.js:273:13)
    at Socket.emit (events.js:182:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

谢谢。

【问题讨论】:

标签: node.js mongodb docker


【解决方案1】:
var url = "mongodb://0.0.0.0:27017/surveydb";

ip地址是否仅在你的nodejs容器中,所以你应该知道mongo容器的ip地址是什么或分配给容器的ip地址网关。

var url = "mongodb://172.17.0.1:27017/surveydb";

var url = "mongodb://ipaddressofmongocontainer:27017/surveydb";

【讨论】:

    猜你喜欢
    • 2016-01-29
    • 2020-01-30
    • 2017-10-15
    • 2019-09-04
    • 2022-01-04
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多