35 部署FastAPI应用之使用Docker部署
在上一篇文章中,我们讨论了如何选择适合的部署方式来托管我们的FastAPI应用。在这篇文章中,我们将深入探讨如何使用Docker来部署FastAPI应用。Docker是一种流行的容器化工具,可以让你的应用在任何环境中以一致的方式运行。
了解Docker
Docker使开发者能够将应用打包到一个轻量级的容器中,这个容器包含了应用运行所需的所有依赖项和环境配置。这样,在不同的机器上部署应用时,可以确保应用的行为一致。
为FastAPI创建Dockerfile
首先,我们需要在FastAPI应用的根目录下创建一个Dockerfile
。Dockerfile
是一个文本文件,其中包含了构建Docker镜像的所有指令。以下是一个示例Dockerfile
:
1 | # 使用Python官方镜像 |
在以上示例中,我们首先选择了一个基础镜像python:3.9-slim
,并将工作目录设置为/app
。接着,我们复制了requirements.txt
文件(里面列出了所有的Python依赖)到容器中,并安装这些依赖。最后,我们将FastAPI应用的代码复制到容器,并使用uvicorn
启动应用。
创建requirements.txt
确保你有一个requirements.txt
文件,它列出了FastAPI和其他所需库的版本。例如:
1 | fastapi==0.95.0 |
构建Docker镜像
在终端中,导航到应用的根目录,然后运行以下命令来构建Docker镜像:
1 | docker build -t myfastapiapp . |
这里的myfastapiapp
是你为镜像指定的名称。
运行Docker容器
构建完成后,我们可以运行Docker容器。使用以下命令启动容器并映射端口,以便能够在浏览器中访问FastAPI应用:
1 | docker run -d --name fastapi-container -p 8000:8000 myfastapiapp |
在这个命令中,-d
参数表示在后台运行容器,--name
指定了容器的名称,-p
参数映射了主机的8000端口到容器的8000端口。
测试FastAPI应用
现在,容器正在运行,你可以通过浏览器或API客户端访问你的FastAPI应用:
1 | http://localhost:8000/docs |
在这里,你可以看到FastAPI自动生成的API文档。
管理Docker容器
使用以下命令可以查看正在运行的容器:
1 | docker ps |
如果需要停止容器,可以使用:
1 | docker stop fastapi-container |
如果要删除容器,可以使用:
1 | docker rm fastapi-container |
结语
通过Docker部署FastAPI应用使得我们的应用能够在任何支持Docker的平台上轻松运行,并且提供了一种简单的一致的方式来管理依赖。在接下来的文章中,我们将讨论如何在云平台上进一步部署我们的FastAPI应用。这样,我们将能够充分利用云服务的优势,进行更大规模的应用托管和负载均衡。
希望这篇文章对你使用Docker部署FastAPI应用有所帮助。如有问题,欢迎在评论区提问!
35 部署FastAPI应用之使用Docker部署