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

Docker容器内Node.js应用跨服务API请求失败问题求助

容器内Node.js应用跨服务请求失败问题排查与解决

问题描述

我正在开发基于Docker容器运行的应用,包含两个Node.js应用:

  • node-sdc-service:容器内运行于5000端口,同时主机5000端口映射到容器5000端口
  • yolov5-service:主机8888端口映射到容器内5000端口

尝试从node-sdc-service向主机8888端口对应的yolov5-serviceAPI路由发送HTTP请求时失败,但通过浏览器、未容器化的Node.js应用访问该API端点均正常。

附docker-compose.yml配置:

version: "3.8"

services:
  node-sdc-service:
    build: 
       context: .
       dockerfile: Dockerfile-dev
    environment:
            CHOKIDAR_USEPOLLING: 'true'
    container_name: node-sdc
    tty: true
    ports:
      - "0.0.0.0:3000:3000"
      - "0.0.0.0:4000:4000"
      - "0.0.0.0:5000:5000"
      - "0.0.0.0:8000:80"
    volumes:
      - .:/usr/src/app

  yolov5-service:
    build: 
       context: .
       dockerfile: Dockerfile-yolo
    environment:
            CHOKIDAR_USEPOLLING: 'true'
    container_name: yolo 
    tty: true
    ports:
      - "0.0.0.0:8888:5000"
    volumes:
      - .:/usr/src/app/server
      - ./training_data:/usr/src/coco
      - ./yolo_runs:/usr/src/app/runs

  mongo-sdc-service:
    image: mongo:5.0-focal
    container_name: mongo-sdc
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 1004
      MONGO_INITDB_DATABASE: sdc 
    volumes:
        - mongo-sdc-storage:/data/db
    ports:
      - 27020:27017

volumes:
    mongo-sdc-storage:

问题根源

容器内的localhost指向自身容器的网络环境,而非宿主机。直接使用localhost:8888发起请求,容器会尝试访问自身的8888端口,而非宿主机映射的yolov5-service服务。

解决方法

方法1:使用Docker Compose服务名访问(推荐)

Docker Compose会自动为同一配置文件中的服务创建内部网络,服务间可通过服务名直接通信,无需依赖主机端口映射。

修改node-sdc-service中的请求地址为:

http://yolov5-service:5000/你的API路径

这里的yolov5-service是docker-compose.yml中定义的服务名,容器内部可直接解析到该服务的网络地址,使用容器内部的5000端口即可。

方法2:使用宿主机实际IP访问

若必须使用主机端口,可在容器内使用宿主机的实际IP地址(如192.168.x.x:8888)代替localhost:8888。注意:不要使用127.0.0.1,它在容器内指向自身。

方法3:确认网络一致性

默认情况下,docker-compose会创建默认网络并将所有服务加入其中。若自定义了网络,需确保两个服务配置在同一网络下。

验证步骤

修改请求地址后,重启容器测试:

docker-compose down && docker-compose up --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:10:31