Windows下Docker容器如何连接本地Spring Boot服务?
解决Docker容器内调用Windows本地Spring Boot服务的连接拒绝问题
- 问题本质:容器里的
localhost指向容器自身的回环地址,而非Windows宿主机,所以直接用127.0.0.1:8080会连接失败。 - 直接可用的解决方案:Windows Docker Desktop官方提供了宿主机专属映射地址
host.docker.internal,把这个地址替换配置里的localhost即可。 - 修改容器内Spring Boot的
application.yaml:
假设原服务地址配置如下:
修改为:# 原配置 remote-service: base-url: http://localhost:8080# 修改后配置 remote-service: base-url: http://host.docker.internal:8080 - 关于
--net=host无效的说明:Windows下Docker Desktop依赖Hyper-V或WSL2虚拟机运行容器,host网络模式无法直接复用宿主机网络栈,因此该参数在Windows环境下基本不起作用。 - 快速验证方式:进入容器内部执行
ping host.docker.internal,能正常收到响应则说明地址配置有效。
内容的提问来源于stack exchange,提问作者todododo
相关产品推荐
相关产品推荐

