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

同Docker网络下Spring WebClient通过容器名调用服务报Connection refused

问题根因及解决方案

你的报错日志已经明确指向核心问题:请求尝试访问attachment-loader-sec的80端口,但attachment-loader-sec容器内服务监听的是8086端口,HTTP协议默认不带端口时会自动访问80端口,自然会被拒绝。

具体可排查的点:

  • 1. WebClient基础URI缺失端口

你当前配置的BasicUri为http://attachment-loader-sec/list,未指定服务端口,补全容器内服务端口即可解决连接拒绝问题:
修改配置为 http://attachment-loader-sec:8086/list

  • 2. 确认服务监听地址

检查Spring Boot配置是否将服务绑定到0.0.0.0而非127.0.0.1,如果绑定到本地回环地址,容器外(包括同网络其他容器)也无法访问,可在application.yml中添加配置:

server:
  address: 0.0.0.0
  • 3. 验证容器内端口连通性

你之前仅做了ping验证,只能证明网络层连通,不能证明端口可达,可在attachment-loader-prim容器内执行命令验证端口可达性:
curl http://attachment-loader-sec:8086/health 或者 nc -zv attachment-loader-sec 8086
如果返回正常响应,说明端口本身可达,问题完全出在WebClient配置上。

  • 4. 检查路径拼接逻辑

你在BasicUri中配置了/list后缀,后续请求又拼接了/{id}/attachment,最终请求路径会是http://attachment-loader-sec:8086/list/{id}/attachment,如果你的目标接口没有/list前缀,会额外触发404错误,需确认路径是否符合业务预期。

内容的提问来源于stack exchange,提问作者Vladislav Ashikhin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:07