Docker容器内TorchServe的curl请求异常问题排查咨询
问题:TorchServe容器中curl请求模型列表返回重定向/空响应
前提假设
已在WSL2 Docker容器中安装并运行TorchServe,为PyTorch模型提供API服务。
预期目标
执行curl命令获取模型列表:
curl http://127.0.0.1:8081/models
预期返回结果:
{ "models": [ { "modelName": "densenet161", "modelUrl": "densenet161.mar" } ] }
当前问题
执行命令后返回重定向页面:
<HTML> <HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY>
已尝试操作
- 在TorchServe容器内执行
curl 127.0.0.1:8081/models,返回上述重定向内容 - 使用Docker容器IP(172.17.0.5)请求,返回空响应错误:
curl 172.17.0.5:8081/models curl: (52) Empty reply from server - 启动Docker容器时已配置端口映射:
docker run -it --gpus all -v /home:/home -p 8080:8080 -p 8081:8081 -p 8082:8082 --shm-size 8GB ts_test - 从宿主机使用宿主机IP执行
curl http://172.19.108.214:8081/models,结果仍为重定向 - 使用
-L选项跟随重定向,返回空响应:root@f0b48fd29ec1:~# curl -L http://127.0.0.1:8081/models curl: (52) Empty reply from server - 使用
-v选项查看请求详情,发现请求被转发到公司代理服务器:root@f0b48fd29ec1:~# curl -v http://127.0.0.1:8081/models * Trying 10.77.8.70... * TCP_NODELAY set * Connected to proxy.mei.co.jp (10.77.8.70) port 8080 (#0) > GET http://127.0.0.1:8081/models HTTP/1.1 > Host: 127.0.0.1:8081 > User-Agent: curl/7.58.0 > Accept: */* > Proxy-Connection: Keep-Alive > < HTTP/1.1 301 Moved Permanently < Server: BlueCoat-Security-Appliance < Location:http://10.75.28.231 < Connection: Close < <HTML> <HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY> * Closing connection 0
可能的原因分析
1. 全局代理配置干扰
从curl -v输出可明确看到,本地请求被自动转发到公司代理服务器proxy.mei.co.jp,而非直接访问TorchServe服务:
- 容器内或宿主机的环境变量(如
HTTP_PROXY、HTTPS_PROXY)配置了全局代理,导致本地127.0.0.1的请求被路由到代理 - 代理服务器无法解析本地回环地址或容器内部IP,返回重定向或空响应
2. TorchServe绑定地址限制
TorchServe默认可能仅绑定到127.0.0.1,导致:
- 容器内部只能通过
127.0.0.1访问服务 - 使用容器IP或宿主机IP访问时,服务未监听对应网卡,返回空响应
需确认启动TorchServe时是否添加--host 0.0.0.0参数,让服务监听所有网卡
3. 网络安全设备拦截
响应头显示存在BlueCoat-Security-Appliance安全设备:
- 公司网络的安全设备拦截了本地请求,返回重定向
- WSL2防火墙、宿主机防火墙或容器内部防火墙规则,阻止了8081端口的正常通信
4. TorchServe服务启动异常
可能存在服务未正常运行的情况:
- 模型文件(
.mar)未正确放置或加载失败,导致管理API(8081端口)无法正常响应 - TorchServe进程未完全启动或启动报错,需查看容器内的TorchServe日志确认状态
内容的提问来源于stack exchange,提问作者Takayama-Shin
相关产品推荐
相关产品推荐

