35 部署FastAPI应用之使用Docker部署

在上一篇文章中,我们讨论了如何选择适合的部署方式来托管我们的FastAPI应用。在这篇文章中,我们将深入探讨如何使用Docker来部署FastAPI应用。Docker是一种流行的容器化工具,可以让你的应用在任何环境中以一致的方式运行。

了解Docker

Docker使开发者能够将应用打包到一个轻量级的容器中,这个容器包含了应用运行所需的所有依赖项和环境配置。这样,在不同的机器上部署应用时,可以确保应用的行为一致。

为FastAPI创建Dockerfile

首先,我们需要在FastAPI应用的根目录下创建一个DockerfileDockerfile是一个文本文件,其中包含了构建Docker镜像的所有指令。以下是一个示例Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 使用Python官方镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制依赖文件到工作目录
COPY requirements.txt .

# 安装所需的依赖
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码到工作目录
COPY . .

# 启动FastAPI应用
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

在以上示例中,我们首先选择了一个基础镜像python:3.9-slim,并将工作目录设置为/app。接着,我们复制了requirements.txt文件(里面列出了所有的Python依赖)到容器中,并安装这些依赖。最后,我们将FastAPI应用的代码复制到容器,并使用uvicorn启动应用。

创建requirements.txt

确保你有一个requirements.txt文件,它列出了FastAPI和其他所需库的版本。例如:

1
2
fastapi==0.95.0
uvicorn==0.18.2

构建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部署

https://zglg.work/python-fastapi-zero/35/

作者

AI免费学习网(郭震)

发布于

2024-08-17

更新于

2024-08-18

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论