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

Can not make containers communicate despite being in the same network

您好,我正在尝试让 .NET Core 服务器与 Redis database.The 服务器在容器外正常工作。
容器已设置 up.I 可以使用主机端口映射访问数据库。
但是,当我执行需要服务器调用数据库的操作时,连接被拒绝。

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

查找它

控制器方法抛出

 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:6379ip 地址是否错误?基本上问题如下:

                Redis    Server
HostPort        6381     9400
ContainerPort   6379     9300
AppPort         6379     9300

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

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

http://redis0:6379http://db:6379

尝试基础 url