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
2、修改项目的配置文件
3、这是redis容器,name为myredis,而且mysql和myredis都connect到了heima网络里面了
在修改配置后,我都有重启各个容器,但仍然无效
问题已经解决
问题是在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);
}
看你的截图,配置文件里面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程序的问题了,我猜可能是读错配置文件了,或者在哪里写死了。