无法通过Docker中的node.js连接到MongoDB [英] Cannot connect to MongoDB via node.js in Docker
本文介绍了无法通过Docker中的node.js连接到MongoDB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的node.js express应用无法在Docker中连接到MongoDB. 我对Docker不太熟悉.
My node.js express app cannot connect to the MongoDB in a Docker. I'm not that familiar with Docker.
node.js连接:
node.js connection:
import mongodb from 'mongodb';
...
mongodb.MongoClient.connect('mongodb://localhost:27017', ... );
Dockerfile:
Dockerfile:
FROM node:argon
RUN mkdir /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3000
CMD ["npm", "start"]
docker-compose.yml
docker-compose.yml
version: "2"
services:
web:
build: .
volumes:
— ./:/app
ports:
— "3000:3000"
links:
— mongo
mongo:
image: mongo
ports:
— "27017:27017"
构建命令:docker build -t NAME .
运行命令:docker run -ti -p 3000:3000 NAME
连接错误:
[MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]]
name: 'MongoError',
message: 'failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]'
推荐答案
尝试:
mongodb.MongoClient.connect('mongodb://mongo:27017', ... );
更改您的docker-compose.yml
:
version: "2"
services:
web:
build: .
volumes:
- ./:/app
ports:
- "3000:3000"
links:
- mongo
mongo:
image: mongo
ports:
- "27017:27017"
并使用一些 docker撰写命令:
docker-compose down
docker-compose build
docker-compose up -d mongo
docker-compose up web
这篇关于无法通过Docker中的node.js连接到MongoDB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文