泊坞窗蒙戈图像从其他容器“连接被拒绝”
我是docker工人。 我正在尝试创build一个MongoDB容器和一个NodeJS容器。 我的文件看起来像这样 。
它应该运行npm install
然后运行node .
。 但是[MongoError: connect ECONNREFUSED 127.0.0.1:27017]
docker-compose up
最后以[MongoError: connect ECONNREFUSED 127.0.0.1:27017]
为命令node .
。 我想这是因为文件/etc/mongod.conf
中的bind_ip = 127.0.0.1
。 这是正确的吗?
我在Win10系统上使用boot2docker。
我怎样才能解决这个问题,使节点可以连接到MongoDB?
在您的后端应用程序中,连接到mongodb:27017
而不是127.0.0.1:27017
。 其中“mongodb”是docker-compose.yml中容器的名称。
很可能,是的。 127.0.0.1指向mongodb容器内的localhost,所以不能从容器外部访问。 绑定到0.0.0.0可能会工作。
通过你在docker-compose.yml中指定的链接,你的后端容器应该能够通过mongodb:27017
连接到mongo容器mongodb:27017
您必须告诉容器使用它自己的IP地址而不是本地主机。
例如,假设您使用expressjs
生成脚手架代码, expressjs
必须使用routes/index.js
编写expressjs
代码
var mongodb = require('mongodb'); router.get('/thelist', function(req, res){ // Get a Mongo client to work with the Mongo server var MongoClient = mongodb.MongoClient; // Define where the MongoDB server is var url = 'mongodb://172.17.0.5:27017/dbname'; // Connect to the server MongoClient.connect(url, function (err, db) { .........
其中172.17.0.5
是$CONTAINER_IP
你可以通过$ docker inspect $CONTAINER_HOSTNAME | grep IPAddress
容器ip, $ docker inspect $CONTAINER_HOSTNAME | grep IPAddress
$ docker inspect $CONTAINER_HOSTNAME | grep IPAddress
如果你仍然不明白你可以看看我的Docker NodeJS和MongoDB应用程序
我最近遇到类似的问题。 我正在运行docker工具箱赢下10,这是如何为我工作:
1)我必须validation我的默认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
3)在这一点上,有效的mongourl看起来像这样
var dbhost = 'mongodb://192.168.99.100:27017/test
其中192.168.99.100
是来自点1)的默认机器URL,
希望它可以帮助别人。
- 反应本地错误 – react-native-xcode.sh:第45行:react-native:命令未find命令/ bin / sh失败,退出码为127
- 我需要创buildurl来获取哪个接受数组,如何在node.js /从请求中提取数组?