python - Docker 无法连接到 Flask
问题描述
我正在尝试将一个简单的烧瓶应用程序移至 docker,但无法从浏览器访问我的烧瓶应用程序。
项目树
├───project
│ │ dockerfile
│ │ requirements.txt
│ │
│ └───app
│ server.py
dockerfile
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
ADD . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app/server.py", "--host=0.0.0.0"]
要求.txt
Flask==0.12.2
服务器.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Flask Dockerized'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
码头工人命令:
docker build -t test-server:latest .
docker run -d -p 5000:5000 test-server
码头工人日志
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 224-123-338
码头工人--版本:Docker version 19.03.5, build 633a0ea
码头工人ps
1c54ccfc61bf test-server "python app/server.p…" 6 seconds ago Up 5 seconds 0.0.0.0:5000->5000/tcp elated_solomon
解决方案
通过设置将此设置为在调试模式下运行app.run(debug=True)
表明您认为您正在设置的主机正在被覆盖:
❰mm92400❙~/test❱✔≻ docker run -it -p 5000:5000 testimage
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 963-222-479
所以将主机设置为app.run(host='0.0.0.0')
:
❰mm92400❙~/test❱✔≻ docker run -it -p 5000:5000 testimage
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 200-559-808
并且浏览器连接有效
172.17.0.1 - - [06/Mar/2020 15:59:42] "GET / HTTP/1.1" 200 -
推荐阅读
- google-analytics - 如何为电话设定目标
- semantic-ui-react - 中等大小的图标
- linux - 如何将 python-module 添加到 openwrt 自定义构建?
- ocaml - 使用 dune 运行 OUnit 测试
- php - 如何使用循环编写动态 sql 查询
- docker - 可以从主机 os 文件系统访问 Kubernetes 中挂载的卷吗
- networking - 从 docker-compose 容器到 LAN 主机的 Zeroconf 发现
- libreoffice - 在 UNO LibreOffice 中使用 writer_pdf_Export 过滤器时出现问题
- c# - C# 通过 ref 在引擎盖下传递它真的是通过引用传递吗?
- jquery - Puppeteer:如何从多个页面/选项卡中抓取刷新页面上的数据