【发布时间】:2021-09-02 09:01:38
【问题描述】:
我正在尝试获取一个 .NET API,以便能够连接到我的 docker 网络上的 Redis 实例。这是我得到的:
- Redis 容器:在自定义 docker 网络
my-networklocalhost:6379上启动并运行 - .NET 服务:尝试在自定义 docker 网络上启动并运行
my-network
(也许?)相关版本控制:
- Abp.RedisCache 5.4.0
- StackExchange.Redis 2.1.58
我已经尝试了所有方法,network inspect,向网络添加和删除这两个容器,即使在我的 .NET 代码中使用了特殊的连接字符串标志 resolveDns=true。无论我做什么,我都会得到:
StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s). UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.1.58.34321
我在这里疯了,Redis 在 docker 网络上的 localhost:6379 启动并运行,为什么 .NET 无法连接?
是的,我已经通过了一个自定义 redis.conf,其中也有 bind 0.0.0.0。
【问题讨论】:
-
您的 Redis 实例未在
localhost运行。它在 docker 网络上有自己的 IP 地址。 -
是的!太感谢了!呃,为什么每个教程都说
localhost,即使使用docker?有没有办法指定 docker 稍后将分配或更改的 IP? (仅针对 CI / CD 问题和可预测性)
标签: .net docker redis network-programming