我已经使用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浏览器返回“无法连接”
我设置错了什么?
答案 0 :(得分:0)
我假设您正在本地主机(而不是虚拟机)上运行docker? 您是否曾尝试在烧瓶上明确使用端口5000?
app.run(host="0.0.0.0", port=int("5000"), debug=True)