我正在本地Node.js应用程序上运行Redis(Docker映像)

时间:2019-02-17 00:00:25

标签: node.js docker redis

我正在尝试在本地节点js应用程序上使用Redis连接,但是它引发错误---

events.js:183     投掷者//未处理的“错误”事件     ^

错误:Redis与127.0.0.1:6379的连接失败-连接ECONNREFUSED 127.0.0.1:6379   在TCPConnectWrap.afterConnect上[完成时](net.js:1191:14)

enter image description here

enter image description here

running none docker image

running docker image

3 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您正在Docker容器内运行节点。该节点进程正在尝试访问在本地主机上运行的redis实例。

这不起作用,因为容器(节点)具有自己的网络堆栈,并且127.0.0.1没有指向主机。

在这种情况下,您要么需要

  1. 在自己的容器中运行redis(并使用docker-compose)或
  2. 将Redis的节点连接主机从localhost(或127.0.0.1)更改为主机IP地址。请参阅How to get the primary IP address of the local machine on Linux and OS X?以查找IP地址

答案 1 :(得分:0)

您正在尝试连接到错误的端口。正如docker ps命令所说,redis监听的端口是32768。连接到该端口应该可以解决您的问题。

有关自定义端口侦听的更多信息,请参见the official docker documentation(尤其是标志-p)。

答案 2 :(得分:0)

您还可以通过重做Docker容器来解决此错误,只需添加“ -p 6379:6379”标志。示例(带有永久日期的Redis):

docker run --name some-redis -p 6379:6379 -d redis redis-server --appendonly是