gpt4 book ai didi

asp.net-core - 尽管处于同一网络中,但无法使容器进行通信

转载 作者:可可西里 更新时间:2023-11-01 11:14:48 25 4
gpt4 key购买 nike

你好,我正在尝试制作 .NET Core服务器与 Redis 通信数据库。服务器在容器外运行良好。
容器已设置。我可以使用主机端口映射访问数据库。
但是当我执行需要服务器调用的操作时连接被拒绝的数据库。

dockercompose

version: '3.3'
services:
db:
image: redis:4.0.5-alpine
container_name: redis0
networks:
- redis-net
ports:
- 6381:6379 //i can acess redis from the hostmachine via 6381 but i can't acess it via 6379 from the container with the server

backend:
image: server
container_name: server0
build: ./Server
command: ["dotnet","Server.dll"]
ports:
- 9400:9300
networks:
- redis-net
environment:
- dbport=6379
depends_on:
- db

networks:
redis-net:

启动

 public void ConfigureServices(IServiceCollection services) {

services.AddOptions();
services.AddMvc();

try {
var env = Environment.GetEnvironmentVariables();
var portStr = env["dbport"].ToString();
System.IO.File.AppendAllText("dock.txt",$"dbport:{portStr}");
if (!(int.TryParse(portStr,out int redisPort))) {
return;
}

var mux = new Multiplexer();
var logicalConnection = mux.OpenLink(redius.Address.Create(redisPort));
services.AddSingleton(logicalConnection);

} catch (Exception ex) {

Console.WriteLine("Could not open link, ex:" + ex.Message);
}
}

为了调试,我正在编写 exception服务器将文件放入容器中,我使用 docker exec -it <container_id> bash 查找它

抛出的 Controller 方法

 public async Task<List<User>> GetUsers()
{
try
{
var usersRaw = await this.connection.HMGetAllAsync("users");
}
catch (Exception ex)
{
System.IO.File.AppendAllText(Constants.OUTPUT,ex.Message);
return null;
}
return null;

}

错误说:connection refused for 127.0.0.1:6379 .是ip地址错了?基本上问题如下:

                Redis    Server
HostPort 6381 9400
ContainerPort 6379 9300
AppPort 6379 9300

我可以通过 6381 从外部访问 Redis我也可以访问 Server通过9400 .服务器可以与 Redis 通信两个外部容器(因此没有专有库错误)。
无法访问Redis来自 Server通过6379 (都在 network -> redis-net 中)

最佳答案

对于错误消息,您似乎正在使用 server image 中的 localhost:6379

尝试使用 http://redis0:6379http://db:6379

的基本 url

关于asp.net-core - 尽管处于同一网络中,但无法使容器进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53746700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com