本博客只是简陋记录当时使用Docker+Flask的操作
一、生成依赖包文件
首先执行pip freeze > requirement.txt 再加几行
gunicorn
gevent
flask
gunicorn gevent
将requirement.txt文件放在项目根目录下
二、手写Dockerfile
在项目根目录下创建一个Dockerfile文件
内容如下
FROM python:3.6
WORKDIR /Project/demo
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "app:app", "-c", "./gunicorn.conf.py"]
说明:其中,第二行 WORKDIR 后面写的是要部署到服务器上的路径,最后一行里面的 第一个app 是我们上面写的 python 启动文件名,第二个app 是启动文件里面要启动的应用名(变量名)
三、手写gunicorn启动文件
在根目录下新建文件 gunicorn.conf.py
填写内容如下
workers = 5 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent" # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:5000"
四、生成镜像
将项目上传到服务器中
cd到项目根目录下执行
docker build -t 'testflask' .
注意最后有个点,表示将镜像保存在本路径下
五、查看镜像
docker images
会显示刚刚生成的镜像
六、运行容器
docker run -d -p 5000:5000 --name test-flask-1(容器名) myflask(镜像名)
七、查看容器
运行容器之后 查看容器状况
docker ps -a
查看端口PORTS是否暴露,如果没有暴露,则查看容器日志 docker logs 容器id找一下原因
ps:记得在服务器的仪表盘(dashboard)的设置里面开启相应的外网端口(这里是 5000)