【发布时间】:2019-09-01 02:08:38
【问题描述】:
我想在本地运行一个 dockerized 烧瓶服务器并访问我在其中定义的任何路由。重现我的问题的设置:
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
Dockerfile
from python:3.7-alpine
COPY app.py app.py
RUN pip install flask
CMD [ "flask", "run" ]
构建这个容器可以正常工作。在the documentation 和some in-depth examples 之后,使用docker run -p 5000:5000 flask 运行它应该可以解决问题。它启动容器并且看起来不错:
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
docker ps 告诉我端口映射似乎也有效:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0581bf3af0ea flask "flask run" 25 seconds ago Up 24 seconds 0.0.0.0:5000->5000/tcp nervous_brown
但是当我尝试在浏览器中访问该站点时,我只收到 404。
有趣的是,使用docker run --net=host flask 运行图像确实有效,但我宁愿不使用它。
我真的不擅长理解网络的工作原理,我做错了什么?
【问题讨论】:
标签: python docker flask alpine