连接两个docker容器nodejs和mongodb [英] connecting two docker containers nodejs and mongodb
本文介绍了连接两个docker容器nodejs和mongodb的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用网络泊坞窗连接两个容器,但是由于某种原因,我遇到了错误:
I'm trying to connect two conainers using networks docker, but for some reason I'm getting a error:
MongoNetworkError:首次连接时无法连接到服务器[db:27017] [Error:connect ECONNREFUSED 172.22.0.3:27017
MongoNetworkError: failed to connect to server [db:27017] on first connect [Error: connect ECONNREFUSED 172.22.0.3:27017
有什么建议吗?
谢谢!
docker-compose.yml
docker-compose.yml
version: '3'
services:
nodejs:
build:
context: .
dockerfile: Dockerfile.dev
image: nodejs
container_name: nodejs
restart: unless-stopped
env_file:
- .env
environment:
- MONGO_USERNAME=$MONGO_USERNAME
- MONGO_PASSWORD=$MONGO_PASSWORD
- MONGO_HOSTNAME=db
- MONGO_PORT=$MONGO_PORT
- MONGO_DB=$MONGO_DB
ports:
- "3000:3000"
volumes:
- .:/home/node/app
- node_modules:/home/node/app/node_modules
networks:
- app-network
command: /home/node/app/node_modules/.bin/nodemon app.js
db:
image: mongo:4.2.9-bionic
container_name: db
restart: unless-stopped
env_file:
- .env
environment:
- MONGO_INITDB_ROOT_USERNAME=$MONGO_USERNAME
- MONGO_INITDB_ROOT_PASSWORD=$MONGO_PASSWORD
volumes:
- dbdata:/data/db
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
dbdata:
node_modules:
推荐答案
当您的Node.js应用程序尝试连接到容器中时,容器内部的MongoDB是否可能尚未启动?
Is it possible that MongoDB inside the container has not yet started when your Node.js app is trying to connect to it?
您应该尝试将 nodejs
服务标记为取决于 db
服务.
You should try marking nodejs
service as dependent on db
service.
这篇关于连接两个docker容器nodejs和mongodb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文