此问题在此处已有答案:
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
2条答案
按热度按时间8ehkhllq1#
将docker-compose更改为
nbewdwxp2#
您需要在docker中Map一个端口。为此,请在
docker-compose.yml
文件中添加一个ports字段。例如:Flask服务器将侦听端口80。现在您可以使用机器上的端口81访问应用程序。More detail