我有一个使用Redis的Node.js应用程序,我正在尝试将Docker容器与本地运行的Redis连接起来。
尝试过的解决方案:
vim /usr/local/etc/redis.conf
已更新
bind 127.0.0.1
收件人
bind 0.0.0.0
停止redis并重新启动,并尝试运行docker
使用上述方法尝试运行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上对其进行检查。
答案 0 :(得分:2)
如果您使用默认网络(--network="bridge"
),则可以简单地使用Docker主机和网桥网络之间的网关的IP地址,即172.17.0.1
。 Here是文档。这将适用于所有平台,不仅适用于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)