python Flask应用程序未在Docker容器中运行[重复]

omqzjyyz  于 2023-03-28  发布在  Python
关注(0)|答案(2)|浏览(152)

此问题在此处已有答案

Deploying a minimal flask app in docker - server connection issues(8个答案)
3天前关闭。
这篇文章是22小时前编辑并提交审查的。
我正在使用flask应用程序学习docker。下面是我使用的代码
app.py

from flask import Flask


app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == "__main__":
    app.run(debug=True)

Dockerfile

FROM python:3

WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

ENTRYPOINT ["python3", "app.py"]

docker-compose.yml

version: '3.9'
services:
  flask:
    build: .
    image: myapp:latest

当我尝试通过python3 www.example.com运行上面的flask应用程序时app.py,它在端口5000上正常工作。但是当我尝试将其dockerizedocker compose up --build显示应用程序已启动,没有错误或警告日志,但localhost没有连接
[![本地主机未连接][1]][1]
在Dockerfile中,我也尝试指定主机。没有任何效果。有人能告诉我如何解决这个问题吗?
我已经尝试了这个链接中提到的所有解决方案Deploying a minimal flask app in docker - server connection issues
但仍然有同样的问题。我已经为这个flask应用程序创建了一个虚拟env,并尝试运行docker容器。更改后

app.run()

app.run(host='0.0.0.0')

并尝试docker run<container_id>得到以下控制台响应
x1c 0d1x请查看所有附加的图像以供参考
我可以看到该应用程序在我的本地主机以及其他一些IP中运行。附上下面的截图供参考。有人可以解决这个问题吗?[1]:https://i.stack.imgur.com/1yboh.png

8ehkhllq

8ehkhllq1#

将docker-compose更改为

version: '3.9'
services:
  flask:
    build: .
    image: myapp:latest
    ports:
     - "5000"
nbewdwxp

nbewdwxp2#

您需要在docker中Map一个端口。为此,请在docker-compose.yml文件中添加一个ports字段。例如:

version: '3.9'
services:
  flask:
    build: .
    image: myapp:latest
    ports:
      - "81:80"

Flask服务器将侦听端口80。现在您可以使用机器上的端口81访问应用程序。More detail

相关问题