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

Docker端口可通过curl访问但浏览器无法连接问题求助

问题解决步骤

1. 修改gunicorn监听地址

你的start_local_server.sh中gunicorn绑定的是127.0.0.1,这会导致服务仅能被容器内部(或使用--net=host时的宿主机回环地址)访问。将HOST改为0.0.0.0,让服务监听所有可用网卡:

set -x

NUM_THREADS=1
HOST=0.0.0.0  # 修改此处
PORT=8080
TIMEOUT=1800
gunicorn -w ${NUM_THREADS} -t ${TIMEOUT} -b ${HOST}:${PORT}  server:app

2. 调整Docker运行命令

根据你的操作系统选择对应命令:

  • Linux系统:保留--net=host(无需-p参数,host模式下直接共享宿主机网络):
docker run -v /home/manuel.dominguez/reference_files/:/Users/jocotton/Desktop/references_files/ --net=host -it spliceai
  • Windows/macOS(Docker Desktop):移除--net=host(该模式在Docker Desktop中不生效),保留端口映射:
docker run -v /home/manuel.dominguez/reference_files/:/Users/jocotton/Desktop/references_files/ -p 8080:8080 -it spliceai

3. 重新构建并验证

修改后重新构建镜像并启动容器:

docker build -t spliceai .
# 执行对应系统的run命令

此时浏览器访问http://localhost:8080即可正常连接,同时原curl命令也能继续正常工作。

问题根源说明

  • 当使用--net=host且gunicorn绑定127.0.0.1时,宿主机终端的curl请求能直接访问宿主机回环地址(与容器共享网络),但浏览器若处于不同网络环境(比如WSL终端搭配Windows浏览器、Docker Desktop虚拟机网络限制),则无法访问仅绑定回环的服务。
  • 改为绑定0.0.0.0后,服务会监听所有网卡,确保不同环境下的请求都能被接收。

内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:42:19