docker部署flask项目

3,140 阅读1分钟

1、创建一个文件夹testflask。 写一个Flask应用如下: testflask/app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello docker&flask'

if __name__ == '__main__':
    app.run(debug=True)

2、使用Gunicorn+Gevent运行Flask应用

我们知道,Flask应用是一个符合WSGI规范的Python应用,不能独立运行(类似app.run的方式仅适合开发模式),需要依赖其他的组件提供服务器功能。在这里,我们选择Gunicorn+Gevent的组合。 安装命令如下:

pip install gunicorn gevent

书写Gunicorn的配置文件如下: testflask/gunicorn.conf.py

workers = 5    # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent"   # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:8888"    # 监听IP放宽,以便于Docker之间、Docker和宿主机之间的通信

可以使用gunicorn命令来测试是否可以正确运行,命令如下:

gunicorn app:app -c gunicorn.conf.py

一旦报错,则根据错误提示修复。

3、使用Docker运行Flask应用 创建一个requirements.txt文件

flask
gunicorn
gevent

4、创建一个Dockerfile文件,以便Docker镜像的构建: ```testflask/Dockerfile``

FROM python:3.6

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["gunicorn", "app:app", "-c", "./gunicorn.conf.py"]

5、个文件的创建之后,进入 testflask目录下执行如下命令,就可以开始构建Docker镜像:(注:其中test是别名)

docker build -t  test .

6、查看容器

docker images

7、运行容器

docker run -id --rm -p 8888:8888 testflask