当前位置:  开发笔记 > 编程语言 > 正文

在Docker容器中运行Flask应用程序

如何解决《在Docker容器中运行Flask应用程序》经验,为你挑选了1个好方法。

我已经构建了一个包含简单Flask测试应用程序的Docker镜像:

from flask import Flask 

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello World!"

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

使用Dockerfile:

FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
WORKDIR /app
RUN pip install -r /app/requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]

Docker镜像是使用构建的docker build -t flask-app .,并且已成功创建:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
flask-app           latest              fab0d79fd7ac        8 minutes ago       642.2 MB
ubuntu              latest              104bec311bcd        5 weeks ago         129 MB

我用它来运行它:

$ docker run -d -p 5000:5000 flask-app
e92b249dd02ca44489069b783fa9be713c7a14ea893061194e37c80f16d8c931

我假设我可以通过指向浏览器来测试应用程序http://localhost:5000/但我得到了超时.怎么可能出错?



1> Cristian Bal..:

从这里看起来一切都很好。让我们进行一些调试。

让我们从名称开始: docker run -d -p 5000:5000 --name flask-app-test flask-app

您也可以避开该-d标志并将日志直接显示在屏幕上。

首先检查Flask应用程序是否确实正在运行,或者是否已崩溃。从一个简单的开始docker ps(看看您是否注意到那里有奇怪的东西),然后是docker logs flask-app-test(这些将是Flask应用程序的日志,它崩溃了吗?有什么奇怪的东西吗?)

如果到现在为止一切都很好,那么该是进入容器的时候了。让我们尝试一下docker exec -ti flask-app-test bash。进入后,wget通过安装并通过加载希望下载的文件(后跟,或称为它的东西)来apt-get install wget测试Web服务器是否从内部工作。wget http://localhost:5000catlscat file.html

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有