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
创建虚拟环境:
python3 -m venv luxenv
激活您的虚拟环境:
source luxenv/bin/activate
注意:以下命令仅适用于 Linux 和 MacOS,请使用本指南了解如何在 Windows 上安装、创建和激活虚拟环境。
安装快速 API
pip3 install fastapi
pip3 install uvicorn
app.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return { "Lux app": "Welcome to Lux app" }
创建 requirements.txt 文件:
pip3 freeze > requirements.txt
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" ]
构建名为 demo 的 docker 镜像:
>>> docker build -t luxapp .
运行名为 demo 的 docker 镜像:
>>>docker run -p 8000:8000 -t -i luxapp
现在在您的本地浏览器中访问http://127.0.0.1:8000您应该会看到以下结果👇🏻
如果你读到这里,恭喜你!希望你学到了一两点新东西,欢迎在下方留言。你也可以在推特上联系我:@HarunMbaabu
文章来源:https://dev.to/grayhat/getting-started-with-docker-fast-api-37mf