无法从在 docker 容器下运行的应用程序连接到位于 localhost:8000 的快速 api 服务器

Sha*_*ari 11 python connection fastapi

我是使用 fastapi 的新手。我在 docker 容器中有一个 main.py。当我使用连接到 fastapi 时

\n
uvicorn main:app \xe2\x80\x94-reload \n
Run Code Online (Sandbox Code Playgroud)\n

来自我的容器。系统提示我连接到http://127.0.0.1:8000。将地址复制到 Firefox 时出现错误:

\n
 unable to connect. \n
Run Code Online (Sandbox Code Playgroud)\n

如何连接到 fastapi 服务器?

\n

PS 我正在工作的 git 分支是由另一位同事开发的,所以我几乎不知道 fastapi 是如何在 docker 内设置的

\n

lsa*_*abi 32

你需要使用命令

uvicorn main:app --reload --host 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

你的docker容器就像一台计算机,是独立的。因此它不允许从外部源访问。使用该--host选项,您可以允许外部连接(从容器的角度来看在本地主机之外)。基本上,docker 的 localhost 与您计算机的 localhost 不同。