利用Docker部署Flask应用
1.首先准备一个小型的flask应用,如下。够简单吧!注意本次部署没有涉及到数据库及nginx代理等,实际情况下,应该是将这些服务部署到不同的服务器中。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return app.send_static_file('index.html')
if __name__ == '__main__':
app.run()
<!-- index.html文件内容 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<h1>hello world!</h1>
</body>
</html>
2.在项目目录下创建并编写Dockerfile文件,名字不能错啊。由于这个flask应用涉及的python包比较少,就没有制作requirements.txt文件。以下是项目目录结构与Dockerfile文件的内容:
- COPY:COPY时,只将文件夹内容拷贝至WORKDIR中,不会拷贝flaskapp这个文件夹
- EXPOSE:对外暴露5000端口
- CMD:容器运行时执行shell的命令,这里使用gunicorn作为wsgi服务器
FROM python:3.8
WORKDIR /flask_test
COPY flaskapp .
RUN pip install flask gunicorn gevent
EXPOSE 5000
CMD gunicorn -w 2 app:app
3.shell终端cd到flask_test目录下,首先执行创建镜像命令。创建成功后,根据镜像,将容器运行起来。
docker build -t flask_app .
docker run -it --name flask_container -p 5000:5000 flask_app
执行结果如下:
4.此时在浏览器输入:127.0.0.1:5000,即可访问到容器内的flask应用了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。