本博客只是简陋记录当时使用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)