尝试访问 Docker 容器中的 Flask 应用程序时出现套接字挂起错误

Fra*_*s C 7 python flask docker

Dockerfile

from ubuntu:latest

RUN apt-get update -y && apt-get install -y python3-pip

COPY . /app

RUN pip3 install -r /app/requirements.txt

ENTRYPOINT ["python3"]
CMD ["app/app.py"]
Run Code Online (Sandbox Code Playgroud)

运行命令

docker build -t flaskapp .
docker run -it -d p 5000:5000 flaskapp
Run Code Online (Sandbox Code Playgroud)

如果我通过邮递员发送请求localhost:5000,我会得到一个Error: Socket hang up错误

有人知道为什么这是一个问题吗?

Fra*_*s C 10

我的烧瓶应用程序中暴露的主机是127.0.0.1我必须切换到的0.0.0.0


小智 5

我遇到了类似的问题并通过这两种方法解决了它。尝试在代码中进行以下任一更改:

1.添加主机名 - 在 Flask 代码本身中添加任何 IP 主机(127.0.0.1 或任何您喜欢的主机名),如下所示:

if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True,port='9999')
Run Code Online (Sandbox Code Playgroud)

2.添加WORKDIR到您的 Dockerfile - 不是强制性的,但可以尝试一下。