Docker中Redis容器IP地址固定为127.0.0.1怎么解决?

作者站长头像
站长
· 阅读数 29

docker中的redis容器IP地址一直都是127.0.0.1,无法改变?

背景:把Springboot项目部署到docker了,然后在运行项目时,Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: /127.0.0.1:6379尝试:1、修改了redis.confDocker中Redis容器IP地址固定为127.0.0.1怎么解决?2、修改项目的配置文件Docker中Redis容器IP地址固定为127.0.0.1怎么解决?Docker中Redis容器IP地址固定为127.0.0.1怎么解决?3、这是redis容器,name为myredis,而且mysql和myredis都connect到了heima网络里面了Docker中Redis容器IP地址固定为127.0.0.1怎么解决?在修改配置后,我都有重启各个容器,但仍然无效

问题已经解决问题是在Java程序这一端

public class RedissonConfig {
    @Value("${spring.redis.host}")
    private String redisHost;
    @Bean
    public RedissonClient redissonClient(){
        //配置
        Config config=new Config();
        //之前在这里把redis的ip写死了
        config.useSingleServer().setAddress("redis://"+redisHost+":"+"6379");
        //创建RedissonClient对象
        return Redisson.create(config);
    }
回复
1个回答
avatar
test
2024-06-20

看你的截图,配置文件里面host填写的是容器名字,然后错误提示也是java程序给的异常,提示连接不到127.0.0.1:6379这个地址。

按理说这里应该解析到的是容器内部的地址,通常应该是172.x.x.x这样的IP。

你试试启动一个新容器 docker run --network heima -it --rm busybox sh,然后在进入容器后,试试ping一下myredis或者mysql,看看ping命令解析到的IP是什么。我感觉这里可能是程序哪里有问题,不像是redis或者docker的问题。

正常情况下,在执行ping的时候肯定是能ping通的,因为都在一个heima的网络下。ping的IP也应该是对应的容器内的IP,肯定不可能会是127.0.0.1这个地址。那么问题大概就是java程序的问题了,我猜可能是读错配置文件了,或者在哪里写死了。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容