我们之前的部署都是基于本地的部署,我们这次来看下,如何使用docker部署我们的fastapi项目。
编写Dockerfile
①:首先编写一个docker镜像的制作文件Dockerfile
FROM python:3.10RUN pip install fastapi uvicorn aiofiles sqlalchemy python-multipart pymysqlEXPOSE 80COPY . .CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
其实简单,就是docker依赖的是python3.10,安装依赖包,然后将所有本地文件复制到镜像,最后部署。
打包镜像
②:编写好Dockerfile文件后,就要以该文件打包我们的镜像,命令:
docker build -t myfastapi .# 语法说明
docker build -t 镜像名称 Dockerfile文件所在路径
执行此命令时需要耐心等待,会有一定的耗时,具体时长跟打包镜像时执行的命令有关,过程如下:
打包完成后,可以通过docker images命令查看镜像
部署
docker run -d --name myfastapi -p 80:80 myfastapi
启动后,可以使用docker ps查看容器服务是否正常启动
接下来我们就试着访问一下:
镜像导出
docker save -o myfastapi.tar myfastapi
导出之后我们可以将该镜像文件导入到任何docker环境进行部署服务
镜像文件导入
docker load < fastapi.tar
然后将镜像启动为我们的容器服务即可访问。