Docker中Redis容器IP地址固定为127.0.0.1怎么解决?-灵析社区

0offer糕手

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.conf![0c77096b52b4e182b803527e2a006d4.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/079c0583f23a2462dc9216d0e79adf7f.png) 2、修改项目的配置文件![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/82a6a7140a4fe92e95e5ef27af89b25e.png)![cbfb10cf7845a6fc1fadd68b68a02bb.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/79df04bff4dac6ca87348d3e6481d96e.png) 3、这是redis容器,name为myredis,而且mysql和myredis都connect到了heima网络里面了![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/dae926e8dba21f9b9019040b5ea76f7b.png) 在修改配置后,我都有重启各个容器,但仍然无效 **问题已经解决** 问题是在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); }

阅读量:217

点赞量:0

问AI
看你的截图,配置文件里面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程序的问题了,我猜可能是读错配置文件了,或者在哪里写死了。