在构建和部署应用程序时,Docker 容器化已成为一种常见的做法。通过将应用程序和其依赖项打包在一个独立的容器中,可以轻松地在不同环境之间移动和部署应用程序,同时确保其依赖项的一致性和可重复性。
安装 Docker
在开始之前,您需要安装 Docker。Docker 可以在 Windows、MacOS 和 Linux 上运行。安装 Docker 的方法因操作系统而异,请参阅 Docker 官方文档以获取详细说明。
创建 Dockerfile
Dockerfile 是一个包含构建 Docker 镜像所需指令的文件。我们将使用 Dockerfile 来构建一个包含 FastAPI 应用程序的 Docker 镜像。
在您的 FastAPI 应用程序目录中,创建一个名为 Dockerfile 的文件,并添加以下内容:
代码语言:javascript复制FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
COPY ./app /app
RUN pip install --upgrade pip && pip install -r /app/requirements.txt
在上面的 Dockerfile 中,我们使用了 tiangolo/uvicorn-gunicorn-fastapi 镜像作为基础镜像,该镜像已经包含了 Uvicorn 和 Gunicorn,并预先配置了 FastAPI。
接下来,我们将应用程序目录中的所有文件复制到镜像中的 /app 目录中。最后,我们使用 pip 安装所有依赖项。
构建 Docker 镜像
在 Dockerfile 目录中打开终端,并使用以下命令构建 Docker 镜像:
代码语言:javascript复制docker build -t my-fastapi-app .
在上面的命令中,-t 参数指定镜像的名称,my-fastapi-app 是您选择的名称。最后的 . 指定 Dockerfile 文件所在的目录。
构建镜像可能需要一些时间,因为 Docker 会下载并安装所需的依赖项和软件包。一旦构建完成,您可以使用以下命令列出所有可用的镜像:
代码语言:javascript复制docker images
运行 Docker 容器
要运行 Docker 容器,您需要使用以下命令:
代码语言:javascript复制docker run -d --name my-fastapi-app -p 80:80 my-fastapi-app
在上面的命令中,-d 参数指定容器在后台运行,--name 参数指定容器的名称,-p 参数指定容器的端口映射。在这个例子中,我们将容器的端口映射到主机的端口 80 上。最后,my-fastapi-app 是我们在之前构建的镜像名称。
运行容器后,您可以使用以下命令查看运行中的容器:
代码语言:javascript复制docker ps
要停止容器,请使用以下命令:
代码语言:javascript复制docker stop my-fastapi-app