创建一个Web项目并使用docker运行
为什么要容器化?
- 无需手动安装运行时环境和依赖库
- 多平台之间切换方便
- 在容器里隔离执行, 不会污染本地系统配置和环境
安装docker
下载地址
平台 | 下载地址 |
---|---|
macOS-10.14及以上 | 传送门1 |
Win10-64位 | 传送门2 |
Linux各大发行版 | 传送门3 |
安装过程不再赘述
Build和Run
在构建容器之前,需要编写2个配置文件来告诉docker: 基于什么环境、需要安装那些依赖库、用什么命令启动等等
先创建一个项目文件夹flask_demo
,后续步骤都在该文件夹内进行
1. 创建和编写文件Dockerfile
FROM python:3.8.5-slim
WORKDIR /App
COPY . .
RUN pip3 install Flask==1.1.2 gunicorn==20.0.4 gevent==20.9.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& ls -lrt \
&& pwd
CMD ["gunicorn", "app:app", "-c", "./gunicorn_conf.py"]
2. 创建和编写docker-compose.yml
version: '3.7'
services:
web:
build:
context: .
dockerfile: Dockerfile
image: flask_demo:v1
container_name: flask_demo
ports:
- "5000:5000"
3. 编写Web核心代码,文件名:app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello Flask!'
if __name__ == '__main__':
app.run(host="0.0.0.0")
4. 创建Web服务器网关接口(WSGI)的配置文件gunicorn_conf.py
workers = 3 # 设置工作进程数
worker_class = "gevent" # 设置工作模式为gevent异步处理
bind = "0.0.0.0:5000" # 设置允许所有主机来访
5. 构建和运行
-
打开命令行,先进入项目文件夹
cd flask_demo
-
使用docker-compose构建镜像
docker-compose build
-
检查构建好的images,大小约150MB
docker-compose images
-
启动flask_demo, 使它在后台运行
docker-compose up -d