【发布时间】:2020-07-26 13:49:18
【问题描述】:
我正在尝试在 docker 上运行一个 Flask 应用程序(它似乎在 Windows 主机系统上运行良好)。
这是我的应用程序。
from flask import Flask, request
import pickle
import numpy as np
with open("./rf.pkl", "rb") as file:
model = pickle.load(file)
app = Flask(__name__)
@app.route("/")
def predict():
s_length = request.args.get("s_length")
s_width = request.args.get("s_width")
p_length = request.args.get("p_length")
p_width = request.args.get("p_width")
prediction = model.predict(np.array([[s_length, s_width, p_length, p_width]]))
return str(prediction)
if __name__ == "__main__":
app.run(host = '0.0.0.0', port = 5000)
正如我所说,这个应用在主机上运行良好。
这是我的 Dockerfile。
FROM continuumio/anaconda3:latest
WORKDIR /home
COPY . /home
RUN pip install -r requirements.txt
EXPOSE 5000
CMD python flask_1.py
当我使用docker run -p 5000:5000 rf_api 时,它表示应用程序正在http://0.0.0.0:5000/ 上运行。但是,浏览器无法访问该页面。
我还尝试了docker inspect --format '{{ .NetworkSettings.IPAddress }}' <containerid>,它说它在 172.17.0.2 上运行。但是浏览器也无法访问这个IP。
我不知道出了什么问题。任何帮助,将不胜感激。谢谢!
这是 'docker ps' 的输出。
【问题讨论】:
-
尝试运行
docker logs -f 1a22,在尝试打开页面时查看是否有任何内容。 -
嗨,我试过了。仍然从浏览器收到“无法访问该网站”。
-
好的,但是日志什么也没显示?
标签: python docker flask devops