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

Windows本地Spring Boot应用无法被Docker容器访问的解决方案咨询

Windows下Docker容器访问本地Spring Boot应用的解决建议

1. 确保本地Spring Boot应用监听正确地址

本地应用不能仅绑定127.0.0.1,否则只有本地主机能访问,容器无法连接。修改Spring Boot配置,让应用监听所有网卡:

  • 在application.properties或application.yml中设置:
    server.address=0.0.0.0
    server.port=25011
    
  • 或者启动时添加参数:java -jar your-app.jar --server.address=0.0.0.0 --server.port=25011

2. 替换固定IP为Docker官方主机别名

Windows环境下(无论Docker用WSL2还是Hyper-V后端),Docker内置了稳定的宿主机别名host.docker.internal,会自动映射到本地主机,比你当前用的172.17.0.1更可靠(WSL2虚拟网卡IP可能随重启变化)。

修改docker-compose.yml中app1的环境变量:

LOCALLY_RUNNING_APP_BASE_URL: "http://host.docker.internal:25011"

3. 配置Windows防火墙允许端口入站

Windows防火墙默认会拦截外部(包括Docker容器)对本地端口的访问,需添加入站规则:

  • 打开「Windows Defender 防火墙」→「高级设置」→「入站规则」→「新建规则」
  • 选择「端口」→ 勾选「TCP」,输入端口25011
  • 选择「允许连接」→ 应用到所有网络类型(按需调整)
  • 命名规则并完成配置

4. 容器内验证连通性(排查问题用)

若调整后仍无法访问,进入容器测试:

  • 执行命令进入app1容器:docker exec -it <app1容器ID/名称> /bin/bash
  • 用curl测试地址:curl http://host.docker.internal:25011
  • 如果curl失败,先ping host.docker.internal确认能否解析到宿主机IP,再检查本地应用是否正常启动、端口是否监听。

5. 确认容器网络配置

你的容器已加入自定义网络network_abc,host.docker.internal在Docker任何自定义网络中都能正常解析和访问,无需额外修改网络配置。

内容的提问来源于stack exchange,提问作者Dilrukshi Perera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:15:02