无法通过 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 compose 命令:
docker-compose down
docker-compose build
docker-compose up -d mongo
docker-compose up web
这篇关于无法通过 Docker 中的 node.js 连接到 MongoDB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文