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

Docker中运行的Uvicorn服务器无法访问问题求助

解决Docker中Uvicorn服务外部无法访问的问题

你的问题根源有两个关键点,我来一步步帮你解决:

1. Uvicorn绑定地址错误

从容器日志可以看到,Uvicorn绑定的是容器内部的回环地址 127.0.0.1:

INFO: Uvicorn running on http://127.0.0.1:8002 (Press CTRL+C to quit)

容器的127.0.0.1和宿主机的127.0.0.1是完全独立的网络空间,宿主机根本无法访问容器内部的回环地址。你需要让Uvicorn监听容器的所有网卡,也就是绑定0.0.0.0。

修复方法:

  • 修改Dockerfile:把CMD命令中的--host 127.0.0.1改成--host 0.0.0.0,修改后的Dockerfile最后一行:

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

    然后重新构建镜像并运行容器。

  • 临时覆盖命令(无需重新构建):如果不想重新构建镜像,可以在运行容器时直接指定命令:

    docker run -p 127.0.0.1:32772:8002 edmaskbackend6 uvicorn main:app --host 0.0.0.0 --port 8002
    

2. 使用正确的访问端口

从docker ps -a的结果可以看到,你已经把容器的8002端口映射到了宿主机的32772端口:

127.0.0.1:32772->8002/tcp

所以修复绑定地址后,你需要访问的是宿主机的32772端口,而不是8002端口。正确的访问地址是:

http://127.0.0.1:32772/

验证步骤

  1. 重启容器(如果修改了Dockerfile则重新构建)
  2. 查看容器日志,确认Uvicorn运行地址变成http://0.0.0.0:8002
  3. 在宿主机访问http://127.0.0.1:32772/,应该就能正常访问你的FastAPI服务了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:49:10