从Docker连接Redis本地主机

时间:2020-01-31 09:30:50

标签: node.js docker redis

我有一个使用Redis的Node.js应用程序,我正在尝试将Docker容器与本地运行的Redis连接起来。

尝试过的解决方案:

  1. vim /usr/local/etc/redis.conf

    已更新

    bind 127.0.0.1
    

    收件人

    bind 0.0.0.0
    

    停止redis并重新启动,并尝试运行docker

  2. 使用上述方法尝试运行docker run -p 4000:8080 -p 6379:6379 -t node-app

以上两者均无法正常工作,但出现以下错误

Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED 127.0.0.1:6379

更新:我正在Mac上对其进行检查。

3 个答案:

答案 0 :(得分:2)

如果您使用默认网络(--network="bridge"),则可以简单地使用Docker主机和网桥网络之间的网关的IP地址,即172.17.0.1Here是文档。这将适用于所有平台,不仅适用于Mac。

答案 1 :(得分:0)

"docker.for.mac.localhost"而不是localhost or '127.0.0.1'可以使用:),它在mac机上对我有效。

答案 2 :(得分:0)

在Dockerfile中添加此 Docker v19.03

ENV REDIS_HOST "redis://host.docker.internal"

当我在node.js上使用它时

const REDIS_HOST = process.env.REDIS_HOST ? process.env.REDIS_HOST : ""
const client = redis.createClient(REDIS_HOST)