从另一个Docker容器连接到Mongodb Docker容器
我试图将在docker容器中运行的mongo DB与运行我的节点js代码的另一个docker容器连接起来.
I am trying to connect mongo DB running in docker container from another docker container where my node js code is running.
所以我使用以下命令运行MongoDB docker:
So I run MongoDB docker using the following command:
docker run --name my-local-mongo -v mongo-data:/data/db -p 27017:27017 -d mongo
我可以从浏览器中输入 0.0.0.0:27017
进行访问,但是当我尝试从节点js代码进行连接时,出现以下错误.我的网址变量是:
I can access from browser typing 0.0.0.0:27017
, however when I try to connect from node js code I am getting following error. My url variable is:
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)]: {} }
谢谢.
var url = "mongodb://0.0.0.0:27017/surveydb";
ip地址是仅在您的nodejs容器中,因此您应该知道什么是mongo容器的ip地址或分配给容器的ip地址网关.
is ip adddress is in your nodejs container only, so you should know what is ip address of mongo container or assign to ip address gateway of containers.
var url = "mongodb://172.17.0.1:27017/surveydb";
或
var url = "mongodb://ipaddressofmongocontainer:27017/surveydb";