docker容器内应用无法连接外部redis?

新手上路,请多包涵

通过docker搭建的springboot应用,集成了redis,本地环境可以正常运行,放在服务器上显示无法连接
image.png

  • redis配置文件:

image.png

  • 容器内通过ping命令检测redis所在ip

image.png

  • 也试了下在运行镜像的时候加如下命令,但是依旧连接不了
--network=host

是容器内的网络环境原因么? 如何解决?

阅读 13.6k
3 个回答

看看是不是云服务的安全组规则限制了对应的端口?

新手上路,请多包涵

问题已解决,redis自动配置的问题,redis连接工厂和序列化方式都是自己写的,所以不需要RedisAutoConfiguration自动配置了,但是为什么本地可以跑,线上不行,没有看源码,不清楚,修改如下

  • 这是之前的启动类
@ServletComponentScan  
@EnableCaching  
@EnableFeignClients  
@SpringCloudApplication
public class ApiApplication {
  public static void main(String[] args) {  
    SpringApplication.run(ApiApplication.class, args);  
  }
}
  • 修改成如下
@ServletComponentScan  
@EnableCaching  
@EnableFeignClients  
@SpringBootApplication(exclude = RedisAutoConfiguration.class)  
@EnableDiscoveryClient  
@EnableCircuitBreaker
public class ApiApplication {
  public static void main(String[] args) {  
    SpringApplication.run(ApiApplication.class, args);  
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题