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

Docker Compose网络问题:ECONNREFUSED与Unsupported protocol报错求助

Docker网络连接问题解决方案

问题原因分析

  • localhost:8080请求失败:前端容器内的localhost指向容器自身,而非宿主机,因此无法访问运行在另一个容器中的后端服务,触发connect ECONNREFUSED错误。
  • hb-backend:8080请求报错:http.get()要求传入完整格式的URL,你省略了http://协议前缀,导致系统无法识别请求协议,出现Unsupported protocol错误。

解决步骤

  1. 修正前端请求地址
    给服务名地址补充http://协议头,修改后的代码如下:

    http.get(`http://hb-backend:8080/${url}`);
    

    Docker Compose会自动为同一份配置内的服务创建专属内部网络,通过服务名hb-backend可直接访问后端容器的8080端口,无需依赖宿主机的端口映射。

  2. 排查网络连通性(可选)
    如果修改后仍有问题,可进入前端容器测试与后端的网络连通性:

    docker exec -it hb-frontend ping hb-backend
    

    能ping通则网络正常,再检查后端服务是否正常启动、端口8080是否正确监听。

  3. 浏览器端跨域处理(若前端在浏览器运行)
    如果前端是通过浏览器直接访问(而非容器内部服务调用),还需处理跨域问题:

    • 方案一:在后端服务中配置CORS规则,允许前端所在域名的访问请求;
    • 方案二:在前端构建工具(如Vite、Webpack)中配置反向代理,将/api类后端请求转发到http://localhost:8080,此时浏览器访问的是宿主机端口,避开容器网络限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:16:21