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

Windows10下Docker运行Spring Boot应用报ERR_EMPTY_RESPONSE如何解决?

问题解决方案

步骤1:修复Spring Boot服务绑定配置

这是该场景下最常见的问题原因:

  • 打开项目中的application.properties或application.yml配置文件
  • 新增/修改配置:server.address=0.0.0.0,如果配置值为127.0.0.1会导致服务仅允许容器内部访问,外部无法调用
  • 确认server.port配置值是否为8080,如果已改为其他端口,后续容器启动的端口映射需要和该值对应
  • 修改完成后重新执行mvn clean install打包,再重新构建Docker镜像启动测试

步骤2:确认应用实际启动状态

执行docker logs <容器ID>查看容器运行日志:

  • 检查是否存在Started XxxxApplication in X seconds的Spring Boot启动成功标识,若未出现该日志说明应用启动失败,根据日志中的报错信息(比如数据库连接失败、资源缺失等)排查对应问题
  • 确认日志中展示的服务监听端口是否和你配置的一致

步骤3:修正访问规则与端口校验

  • 宿主机直接访问localhost:9999时,先确认宿主机9999端口未被其他程序占用:
    • Windows系统执行netstat -ano | findstr 9999
    • Linux/Mac系统执行lsof -i:9999
      若端口被占用,启动容器时更换宿主机映射端口即可,比如docker run -p 10000:8080 app
  • 直接访问容器IP时需要使用容器内部的服务端口,而非宿主机映射端口:比如你容器内服务端口是8080,应该访问http://172.17.0.2:8080/getCategoryById/1,而非9999端口

补充说明:Windows/Mac环境下Docker Desktop默认不支持直接ping容器IP,该现象属于正常情况,无需以此作为网络故障的判断依据。

步骤4:排查网络拦截规则

  • 若使用Windows/Mac版Docker Desktop,临时关闭本地防火墙测试是否可以正常访问,确认是否是防火墙拦截了Docker的端口映射规则
  • 若使用Linux系统,检查iptables规则是否允许Docker网段的流量转发

内容的提问来源于stack exchange,提问作者Sercan Noyan Germiyanoğlu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:24:03