如何在 Docker 容器中部署 Flask 应用

阅读时长 4 分钟读完

前言

Docker 是一个流行的容器化技术,可以帮助开发者更方便地部署自己的应用程序。Flask 是一个 Python web 框架,可以用来快速开发 web 应用程序。在本文中,将介绍如何在 Docker 容器中部署 Flask 应用。

准备工作

在开始本文之前,请确保您已经正确安装了 Docker 和 Docker Compose,同时您需要一个具有 Python 环境的 Flask 应用程序。以下是您需要准备好的文件和工具:

  • Dockerfile: 用于构建 Docker 镜像。
  • docker-compose.yml: 用于配置 Docker Compose。
  • requirements.txt: 您的 Flask 应用程序所需的 Python 库。
  • Flask 应用程序: 包含您自己编写的 Flask 代码。

接下来,我们将分步骤说明如何配置 Docker 环境并在其中部署 Flask 应用程序。

配置 Dockerfile

Dockerfile 是用于构建 Docker 镜像的文件。在本例中,我们将创建一个基于 python:3.7-slim-buster 镜像的 Docker 镜像,并将 Flask 应用程序复制到镜像中。以下是 Dockerfile 的样例代码:

-- -------------------- ---- -------
---- ----------------------

------- ----

---- - ----

--- --- ------- -------------- -- ----------------

--- ---------- ---------

上述 Dockerfile 指令的解释如下:

  • FROM: 指定 Dockerfile 的基础镜像。
  • WORKDIR: 指定容器中的工作目录。
  • COPY: 将应用程序复制到容器中。
  • RUN: 运行命令,这里是安装在 requirements.txt 中指定的 Python 库。
  • CMD: 容器启动后默认执行的命令。

注意,如果您的 Flask 应用设置了端口,您需要使用 EXPOSE 命令将其暴露出来。例如,如果您在 app.py 中设置了端口 5000,则可以使用以下指令:

配置 docker-compose.yml

在配置完 Dockerfile 后,我们需要配置 docker-compose.yml。这个文件描述了多个 Docker 容器之间的关系以及相关的服务和配置。以下是 docker-compose.yml 的样例代码:

-- -------------------- ---- -------
-------- ---

---------
  ----
    ------ -
    ------
      - -----------
    --------
      - ------

上述 docker-compose.yml 指令的解释如下:

  • version: docker-compose.yml 的版本。
  • services: 定义 Docker 容器的服务。
  • web: 容器名称,可以随意取名。
  • build: 用于构建 Docker 镜像的路径。本例中使用了当前目录。
  • ports: 容器暴露的端口映射。左边的 "5000" 是主机上的端口,右边的 "5000" 是容器内的端口。
  • volumes: 将当前目录挂载到容器内的 /app 目录中。

构建 Docker 容器

在配置完 Dockerfile 和 docker-compose.yml 后,需要构建 Docker 镜像并启动容器。

使用以下指令可以构建 Docker 镜像:

使用以下指令可以启动 Docker 容器:

此时,您的 Flask 应用程序应该已经可以通过浏览器访问了。

总结

恭喜您已经成功在 Docker 容器中部署了 Flask 应用程序。Docker 提供了强大的容器化技术,让开发者可以更方便地打包并部署应用程序。本文介绍了如何配置 Dockerfile 和 docker-compose.yml 并启动容器,希望对您有所帮助。完整的示例代码可在我的 GitHub 仓库中找到:

-- -------------------- ---- -------
- --- ------- ----- ---
---- ----- ------ -----

--- - ---------------

---------------
--- --------------
    ------ ------- -------

-- -------- -- -----------
    ------------------- ---------------

参考资料:

  1. Docker 官方文档:https://docs.docker.com/
  2. Docker Compose 官方文档:https://docs.docker.com/compose/

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6519089095b1f8cacd1474b7

纠错
反馈