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

Docker端口映射正常但无法访问容器内Uvicorn部署的API故障排查

问题产生原因
  • 核心原因是UVicorn默认绑定的是容器内部的环回地址127.0.0.1,这个地址仅支持容器内部访问,宿主机的外部请求无法触达容器内的服务
  • 当前Dockerfile中使用的--reload是开发热重载参数,仅适合本地开发调试场景,不建议在容器化部署时保留
解决方案

方法1:修改Dockerfile的启动指令(推荐)

在UVicorn启动参数中添加--host 0.0.0.0,让服务监听容器所有网卡的请求,修改后的CMD指令如下:

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

如果确实需要保留热重载的开发调试能力,也可以保留--reload参数:

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]

修改后重新执行镜像构建、容器启动命令即可正常访问。

方法2:启动容器时覆盖启动命令(无需修改Dockerfile)

如果不想改动现有Dockerfile,可以在执行docker run时直接覆盖启动指令:

sudo docker run -d -p 8000:8000 test uvicorn main:app --host 0.0.0.0 --port 8000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:24:05