docker compose 中的 NodeJS Mongodb = ECONNREFUSED

mongodbJS

1个回答

写回答

66886699

2025-06-25 01:10

+ 关注

JS
JS

标题:解决 Docker Compose 中 Node.JS 连接 MongoDB 出现 ECONNREFUSED 错误的方法

在使用 Docker Compose 部署 Node.JSMongoDB 的应用时,有时会遇到连接出现 ECONNREFUSED 错误的情况。本文将介绍该错误的原因,并提供一些解决方法。

问题原因

ECONNREFUSED 错误通常是由于 Node.JS 无法连接到 MongoDB 数据库引起的。这可能是由于以下几个原因导致的:

1. MongoDB 服务未启动:在使用 Docker Compose 部署应用时,确保 MongoDB 服务已正确启动并监听正确的端口。

2. 网络配置错误:如果 Node.JS 容器和 MongoDB 容器不在同一个网络中或未正确配置网络连接,可能导致无法连接。

3. 端口映射错误:如果在 Docker Compose 文件中没有正确映射 Node.JS 容器和 MongoDB 容器的端口,也会导致无法连接。

解决方法

下面是几种解决 Docker Compose 中 Node.JS 连接 MongoDB 出现 ECONNREFUSED 错误的方法:

1. 检查 MongoDB 服务状态:在 Docker Compose 文件中添加一个依赖关系,确保 Node.JS 容器在 MongoDB 容器启动之后才启动。示例代码如下:

yaml

version: '3'

services:

MongoDB:

image: mongo

ports:

- 27017:27017

nodeJS:

build: .

depends_on:

- MongoDB

2. 确定容器网络配置正确:在 Docker Compose 文件中,确保 Node.JS 容器和 MongoDB 容器在同一个网络中。示例代码如下:

yaml

version: '3'

services:

MongoDB:

image: mongo

network_mode: bridge

ports:

- 27017:27017

nodeJS:

build: .

network_mode: bridge

3. 确认端口映射正确:在 Docker Compose 文件中,确保正确映射 Node.JS 容器和 MongoDB 容器的端口。示例代码如下:

yaml

version: '3'

services:

MongoDB:

image: mongo

ports:

- 27017:27017

nodeJS:

build: .

ports:

- 3000:3000

通过检查 MongoDB 服务状态、确保正确的网络配置和端口映射,可以解决 Docker Compose 中 Node.JS 连接 MongoDB 出现 ECONNREFUSED 错误的问题。在部署应用时,确保所有相关的服务都已正确配置和启动,以确保顺利建立连接。希望本文提供的解决方法对读者有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号