You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js容器连接Redis容器报ECONNREFUSED连接被拒绝错误如何解决?

问题根源

容器内部的127.0.0.1指向的是当前容器自身的回环地址,而非宿主机或者其他容器的网络地址,你的Node.js容器内部没有运行Redis服务,所以发起连接后会返回ECONNREFUSED错误。

推荐解决方案(Docker自定义网络)

Docker同一自定义网络下的容器可以通过容器名直接互相通信,配置步骤如下:

  1. 创建专属桥接网络
docker network create redis-network
  1. 重启Redis容器,加入该网络
# 先停止删除原有Redis容器(如果需要保留数据可以用docker network connect命令直接把现有容器加入网络)
docker stop redis && docker rm redis
# 启动新的Redis容器加入网络
docker run -d --name redis --network redis-network -p 6379:6379 redis
  1. 修改Node.js代码中的Redis连接配置
const redis = require('redis')
const redisClient = redis.createClient({
  host: "redis", // 此处填写Redis容器的名称,Docker会自动完成DNS解析
  port: "6379"
})
  1. 启动Node.js容器时加入同一网络
docker run -d --name node-app --network redis-network 你打包的Node.js镜像名称

临时测试方案

如果不需要长期部署,只想快速验证功能,也可以直接将Node.js代码中Redis连接的host改为宿主机的局域网IP(例如192.168.3.12之类的本地IP,不要填127.0.0.1),保持原有的Redis容器启动配置即可正常连接。


内容的提问来源于stack exchange,提问作者nagaraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:15:02