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

前端Docker容器连接后端容器时出现连接拒绝问题求助

问题解决:前端容器无法访问后端端点

核心问题:端口使用错误

你的前端代码里请求的是http://backend:1337/api/person,但1337是宿主机映射到后端容器的端口,容器之间通信应该使用后端容器内部的端口(也就是后端服务实际监听的8080端口)。

Docker Compose默认会为所有服务创建共享网络,容器间用服务名(backend)即可互通,但端口必须是容器内部的服务端口,而非宿主机的映射端口。

修复步骤

  1. 修正前端请求地址
    将前端代码中的请求URL从http://backend:1337/api/person改为http://backend:8080/api/person。

  2. 升级docker-compose版本
    你的配置使用的是版本1,属于老旧版本,建议升级到3.x(比如3.8),新版本支持更多特性且兼容性更好:

    version: '3.8'
    services:
      # 其余服务配置保持不变
    
  3. 可选:添加健康检查(解决启动顺序问题)
    depends_on仅保证容器启动顺序,不保证后端服务完全就绪。如果后端启动较慢,可添加健康检查确保前端在后端服务可用后再启动:

    backend:
      build: ./Backend/
      ports:
        - 1337:8080
      container_name: backend-container
      depends_on:
        - mysql
      healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] # 需后端提供健康检查端点
        interval: 10s
        timeout: 5s
        retries: 5
    

    同时修改前端的depends_on配置,依赖后端的健康状态:

    frontend:
      build: ./Frontend/
      ports:
        - 1338:8080
      container_name: frontend-container
      depends_on:
        backend:
          condition: service_healthy
    

验证操作

修改后重新部署服务:

docker-compose down
docker-compose up --build

检查前端容器是否能正常访问后端端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:02:36