1. 以一个简单的flask的demo为例,首先创建一个app.py,内容如下:
from flask import Flask
from gevent import pywsgi
app = Flask(__name__)
@app.route('/hello')
def hello():
return 'Hello, Flask!'
# flask线上部署,需要使用WSGI启动服务
server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
server.serve_forever()
执行该文件,即可在 http://localhost:5000/hello 访问
2. 创建Dockerfile
FROM python:3.8-slim-buster
WORKDIR /app
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
COPY ./app /app
CMD ["python", "app.py"]
安装最新版本的依赖,不使用缓存,使用清华镜像
3. 接着创建requirements.txt,写入执行项目需要的依赖
Flask
gevent
项目目录结构如图:
![](https://i-blog.csdnimg.cn/blog_migrate/0ac26aca7accbfd51e29956a027c648b.png)
项目目录中,app文件夹是最后需要打包的所有文件的根目录,所有项目文件都放这个文件夹中。
而项目创建完成后,就不需要Dockerfile和requirements.txt了,所以不需要放在app文件夹中。
4. 构建docker镜像
在flask目录下打开终端,执行以下命令:
docker build -t flask .
命令中的flask是镜像名称,可根据项目需求自行编辑。
5. 运行容器
镜像构建完成后,执行下方命令:
docker -d -p 5000:5000 --name=flask flask
可以使用docker ps 查看容器是否运行成功
运行后,可通过访问http://localhost:5000/hello 查看是否成功
![](https://i-blog.csdnimg.cn/blog_migrate/51eea6c203d36303f34ea082f55a82ce.png)
6.镜像打包
在本地创建好的镜像,为了方便部署到服务器上,可以通过以下命令打包。
docker save -o flask.tar flask
打包完成后,会在当前目录生成一个 flask.tar 文件
7.镜像文件加载
将镜像文件上传至服务器后,可以通过 docker load -i [文件地址] 加载该镜像。
docker load -i /app/flask.tar