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

Docker部署FastAPI时Uvicorn绑定主机IP失败的问题求助

Docker部署FastAPI时Uvicorn绑定主机IP失败的问题求助

各位大佬好,我正在做一个小实验,遇到了个搞不懂的问题,想请大家帮忙看看。

我基于Python基础镜像搭建了一个简单的FastAPI Web服务,容器启动的最终CMD命令是:

CMD ["uvicorn","myapp:app","--port","8080", "--reload"]

我用这条Docker命令启动容器:

docker run -it --name t1 --rm -p 8080:8080 image_name

容器能正常运行,但我在宿主机浏览器访问http://localhost:8080/却完全连不上(我可以百分百确认FastAPI的端点是没问题的)。

我猜测问题出在绑定的IP上:Uvicorn默认应该是绑定容器自身的IP,毕竟我在容器内部执行curl localhost:8080是能正常访问服务的。

于是我尝试把Uvicorn的--host参数设置为从容器视角看到的宿主机IP——也就是172.17.0.1,把CMD改成了这样:

CMD ["uvicorn","myapp:app","--host","172.17.0.1","--port","8080", "--reload"]

结果这次容器直接启动失败,抛出了这个错误:

ERROR:[Errno 99] Cannot assign requested address

我知道把--host设为0.0.0.0是能解决问题的,但我就是想让容器的端口只绑定到宿主机IP,不想监听所有地址。有没有大佬知道该怎么实现这个需求?另外也想请教下,为什么绑定172.17.0.1会出现这个错误呢?

备注:内容来源于stack exchange,提问作者Checco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:58:12