Docker 和 Fast API 入门

2025-05-27

Docker 和 Fast API 入门

图像

休息 4 周后再次回来发表一篇新文章,今天我们将学习什么是 docker,了解 docker 镜像和 docker 容器之间的区别,并将一个简单的 Python(FastAPI 应用程序)容器化,本文中使用的所有代码和资源都可以从这个GitHub repo 存储库下载。

Docker是一个开源容器化平台,它使开发人员能够将应用程序打包到容器中,将应用程序源代码与在任何环境中运行该代码所需的操作系统库和依赖项相结合,形成标准化的可执行组件。

容器简化了分布式应用程序的交付,并且随着组织转向云原生开发和混合多云环境,容器变得越来越流行。

开发人员无需 Docker 即可创建容器,但 Docker 使得构建、部署和管理容器变得更容易、更简单、更安全。

Docker 本质上是一个工具包,它使开发人员能够通过单个 API 使用简单的命令和节省工作的自动化来构建、部署、运行、更新和停止容器。

Docker 容器与 Docker 镜像

Docker 镜像一个只读的、惰性的模板,附带部署容器的说明。在 Docker 中,一切基本上都围绕镜像展开。

镜像由一系列文件(或层)组成,这些文件包含设置完全功能容器环境所需的所有必需品,例如依赖项、源代码库。

Docker 容器一个虚拟化的运行时环境,它提供隔离功能,将应用程序的执行与底层系统分离。Docker 容器可以被视为 Docker 镜像的一个实例。

容器是 Docker 技术的终极实用工具——它们为部署应用程序提供了可移植且轻量级的环境。

每个容器都是自治的,运行在自己隔离的环境中,确保它不会干扰其他正在运行的应用程序或其底层系统,从而大大提高了应用程序的安全性。

快速 API。

根据官方文档,FastAPI 是一个现代[且]快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API。

从名称就可以看出,FastAPI 速度极快,这得益于 Python 3.6+ 对异步功能的开箱即用支持。因此,我们建议使用最新版本的 Python。

微软、Uber 和 Netflix 等许多科技巨头已经在使用 FastAPI 来构建他们的应用程序。

正如我在上一篇文章《Python Web 开发入门》中所讨论的那样,在开发 Python 应用程序时,建议使用虚拟环境来加速和清理整个项目工作流程,请在此处阅读有关创建虚拟环境的更多信息👉🏻

好了,说得够多了,让我们开始动手,将一个简单的快速 API 应用程序 dockerize 起来。

首先安装并激活你的虚拟环境并安装Fast API,如下所示:

安装虚拟环境:

pip3 install virtualenv
Enter fullscreen mode Exit fullscreen mode

创建虚拟环境:

python3 -m venv luxenv
Enter fullscreen mode Exit fullscreen mode

激活您的虚拟环境:

source luxenv/bin/activate
Enter fullscreen mode Exit fullscreen mode

注意:以下命令仅适用于 Linux 和 MacOS,请使用指南了解如何在 Windows 上安装、创建和激活虚拟环境。

安装快速 API

pip3 install fastapi 
pip3 install uvicorn
Enter fullscreen mode Exit fullscreen mode

app.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return { "Lux app": "Welcome to Lux app" }
Enter fullscreen mode Exit fullscreen mode

创建 requirements.txt 文件:

pip3 freeze >  requirements.txt 
Enter fullscreen mode Exit fullscreen mode

Dockerfile

FROM python:3.6

COPY . /src

COPY ./requirements.txt /src/requirements.txt

WORKDIR src

EXPOSE 8000:8000

RUN pip install -r requirements.txt

CMD [ "python", "app.py" ]
Enter fullscreen mode Exit fullscreen mode

构建名为 demo 的 docker 镜像:

>>> docker build -t luxapp .  
Enter fullscreen mode Exit fullscreen mode

运行名为 demo 的 docker 镜像:

>>>docker run -p 8000:8000 -t -i luxapp
Enter fullscreen mode Exit fullscreen mode

现在在您的本地浏览器中访问http://127.0.0.1:8000您应该会看到以下结果👇🏻

截图于 2021-09-14 12.27.37

如果你读到这里,恭喜你!希望你学到了一两点新东西,欢迎在下方留言。你也可以在推特上联系我:@HarunMbaabu

文章来源:https://dev.to/grayhat/getting-started-with-docker-fast-api-37mf
PREV
使用 Rust 进行 Web 开发 — 03/x:创建 REST API
NEXT
2020 年你需要了解的 5 个 React UI 库