You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker内Spring Boot API Gateway连接Redis失败问题求助

Docker内Spring Boot API Gateway连接Redis失败的解决方法

问题核心

容器内的127.0.0.1指向容器自身,而非宿主机或Redis容器。本地运行API Gateway能连接Docker Redis,是因为宿主机的端口映射将本地127.0.0.1:6379转发到了Redis容器,但容器内的127.0.0.1无法访问到其他容器。


具体解决步骤

  • 使用Docker容器名称作为Redis地址
    同一Docker网络下,Docker内置DNS可直接解析容器名称。修改Redis配置代码中的地址为容器名(假设Redis容器名为redis):

    @Configuration
    public class RedisConfig {
    
        @Bean
        public RedissonClient redissionClient() {
            Config config = new Config();
            config.useSingleServer().setAddress("redis://redis:6379");
            return Redisson.create(config);
        }
    }
    
  • 确认容器在同一网络
    检查两个容器是否处于同一自定义网络:

    # 查看所有Docker网络
    docker network ls
    # 检查容器所属网络
    docker inspect <api-gateway容器名> | grep NetworkMode
    docker inspect <redis容器名> | grep NetworkMode
    

    若不在同一网络,将容器加入目标网络:

    docker network connect <目标网络名> <容器名>
    
  • 清理无效hosts映射
    宿主机etc/hosts中添加的127.0.0.1 api-gateway db redis对容器间通信无意义,反而可能造成解析混淆,建议删除该行配置。

  • 验证网络连通性
    进入API Gateway容器,测试与Redis容器的连通性:

    # 测试ping连通性
    docker exec -it <api-gateway容器名> ping redis
    # 测试Redis服务可用性
    docker exec -it <api-gateway容器名> redis-cli -h redis ping
    

    若返回PONG,说明Redis服务正常且网络连通。

内容的提问来源于stack exchange,提问作者houhou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 21:38:11