在Docker中部署Flask应用程序。无法连接到该网站

时间:2019-04-15 14:17:39

标签: python docker flask

我已经使用python和flask运行了docker文件。 但我无法在本地主机中连接Flask服务器。 我已经确认该代码可以在Mac中的PyCham上正常工作。

检查日志后,我认为Flask服务器在容器中运行良好。 但我无法在localshost中连接

Python代码

# app.py
from flask import Flask

app = Flask('app')


@app.route('/')
def index():
    return "I'm from docker"


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)
else:
    print('imported')


Dockerfile。

FROM ubuntu:latest
MAINTAINER ian <ian@mysterico.com>

RUN apt-get update
RUN apt-get install python3 -y
RUN echo "python3 install SUCCESS #####"

RUN apt-get install python3-pip -y
RUN echo "pip3 install SUCCESS ######"

EXPOSE 5000

COPY requirements.txt /
COPY app.py /
WORKDIR /


RUN pip3 install -r requirements.txt

CMD python3 app.py

一些Docker日志

$ docker ps 容器ID图像命令创建的状态端口名称 0691161cd0b5 flask:latest“ / bin / sh -c'python3…” 2分钟前向上2分钟0.0.0.0:5000->5000/tcp flask

$ docker日志0691161cd0b5 *在http://0.0.0.0:5000/上运行(按CTRL + C退出) *用统计重启 *调试器处于活动状态! *调试器PIN:280-257-458

$ docker exec -it 71305c45d05b bash root @ 71305c45d05b:/#curl 127.0.0.1:5000 -v

重建的URL至:127.0.0.1:5000/ 正在尝试127.0.0.1 ... TCP_NODELAY设置 连接到127.0.0.1(127.0.0.1)端口5000(#0) GET / HTTP / 1.1 主持人:127.0.0.1:5000 用户代理:curl / 7.58.0 接受: /

HTTP 1.0,假定在正文之后关闭 HTTP / 1.0 200 OK 内容类型:text / html;字符集= utf-8 内容长度:15 服务器:Werkzeug / 0.15.2 Python / 3.6.7 日期:2019年4月15日星期一15:31:36 GMT

关闭连接0 我来自docker

当我输入localhost:5000时,我希望它会返回“我来自docker”,但Chrome浏览器返回“无法连接”

我设置错了什么?

1 个答案:

答案 0 :(得分:0)

我假设您正在本地主机(而不是虚拟机)上运行docker? 您是否曾尝试在烧瓶上明确使用端口5000?

app.run(host="0.0.0.0", port=int("5000"), debug=True)