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

Spring & Docker:访问localhost提示未发送任何数据如何解决

问题根因

Spring Boot应用默认监听端口为8080,你的Docker配置中指定暴露9090端口、并将本地80端口映射到容器9090端口,但应用本身没有修改监听端口配置,导致容器内没有服务响应9090端口的请求,因此访问时提示站点未返回数据。

解决方案(任选其一即可)

方案1:修改application.properties配置

在空白的application.properties文件中添加如下配置,指定应用启动后监听9090端口,和Docker配置对齐:

server.port=9090

修改后重新打包Jar、构建Docker镜像、启动容器即可正常访问。

方案2:调整Docker配置适配Spring默认端口

如果不想修改应用配置,可以直接修改Docker相关配置适配默认的8080端口:

  • 将Dockerfile中的EXPOSE 9090改为EXPOSE 8080
  • 启动容器的命令调整为:
docker run -p 80:8080 username/demo.jar

重新构建镜像、启动容器即可。

方案3:启动命令中直接指定端口

不需要修改配置文件和Dockerfile,直接修改Dockerfile的ENTRYPOINT指令,启动时动态指定端口:

ENTRYPOINT ["java", "-jar", "demo.jar", "--server.port=9090"]

重新构建镜像启动即可。

验证排查方法

如果修改后仍然有问题,可以按如下步骤排查:

  • 执行docker ps确认容器处于正常运行状态,没有异常退出
  • 执行docker exec -it 容器ID /bin/bash进入容器内部,执行curl localhost:9090(对应你配置的监听端口),确认容器内部可以正常拿到接口返回,再排查端口映射、本地网络相关问题。

内容的提问来源于stack exchange,提问作者Cian Barrett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:57:01