> 技术文档 > 用 Docker 构建你的第一个 Python Flask 程序_dockerfile编写启动flsk项目

用 Docker 构建你的第一个 Python Flask 程序_dockerfile编写启动flsk项目


文章目录

  • 引言
  • 一、准备工作
  • 二、创建 Flask 应用程序
  • 三、创建 Dockerfile
  • 四、构建 Docker 镜像
  • 五、运行 Docker 容器
  • 六、总结与拓展

引言

       在当今的软件开发领域,容器化技术正变得越来越流行,而 Docker 无疑是其中的佼佼者。它能够帮助开发者轻松地构建、部署和运行应用程序,确保在不同环境中的一致性。Python Flask 是一个轻量级的 Web 框架,非常适合快速开发简单的 Web 应用程序。今天,我们就来探索如何使用 Docker 构建一个简单的 Python Flask 程序,实现经典的“Hello World”功能。

一、准备工作

       在开始之前,确保你的系统已经安装了 Docker。你可以访问 Docker 官方网站 下载并安装适合你操作系统的 Docker 版本。安装完成后,通过在终端(或命令提示符)运行以下命令来验证 Docker 是否正常工作:

docker --version

       如果返回了 Docker 的版本信息,那么说明安装成功。
用 Docker 构建你的第一个 Python Flask 程序_dockerfile编写启动flsk项目


二、创建 Flask 应用程序

       首先,我们需要创建一个基本的 Flask 应用程序。在你选择的工作目录下,创建一个名为 app.py 的文件,并输入以下代码:

#创建工作目录richard@richard-virtual-machine:~$ mkdir first-docker-flask#进入工作目录richard@richard-virtual-machine:~$ cd first-docker-flask/#创建文件richard@richard-virtual-machine:~/first-docker-flask$ vim app.py
from flask import Flaskapp = Flask(__name__)@app.route(\'/\')def hello_world(): return \'Hello, World! My name is {Your name}\'if __name__ == \'__main__\': app.run(debug=True, host=\'0.0.0.0\')

       这段代码非常简单。我们首先导入了 Flask 类,然后创建了一个 Flask 应用实例。通过使用 @app.route(\'/\') 装饰器,我们定义了一个路由,当访问应用的根目录(即 /)时,会触发 hello_world 函数,返回“Hello, World!”字符串。最后,通过 app.run() 方法启动 Flask 应用,其中 host=\'0.0.0.0\' 表示允许外部访问,debug=True 开启调试模式,方便我们在开发过程中进行调试。


三、创建 Dockerfile

       在同一个目录下,创建一个名为 Dockerfile 的文件。Dockerfile 是一个文本文件,包含了用于构建 Docker 镜像的指令。以下是我们的 Dockerfile 内容:

#创建文件richard@richard-virtual-machine:~/first-docker-flask$ vim Dockerfile
# 使用官方 Python 基础镜像FROM python:3.9-slim# 设置工作目录WORKDIR /app# 将当前目录下的文件复制到工作目录中COPY . /app# 安装依赖RUN pip install Flask# 暴露端口EXPOSE 5000# 启动 Flask 应用CMD [\"python\", \"app.py\"]

让我们逐步解析一下这个 Dockerfile:

  • FROM python:3.9-slim:指定使用官方的 Python 3.9 瘦版本基础镜像。这个镜像已经包含了 Python 运行环境,能够满足我们运行 Flask 应用的基本需求,同时体积相对较小,有助于提高构建和部署效率。
  • WORKDIR /app:设置工作目录为 /app,后续的操作都会在这个目录下进行。
  • COPY . /app:将当前目录下的所有文件复制到工作目录中。这样,我们的 app.py 文件以及后续可能添加的其他文件都会被包含在镜像中。
  • RUN pip install Flask:运行命令安装 Flask 依赖。由于我们的应用需要 Flask 框架来运行,这里通过 pip 安装 Flask。
  • EXPOSE 5000:声明容器运行时将暴露端口 5000。虽然这不会实际发布端口,但为后续容器运行时的端口映射提供了参考。
  • CMD [\"python\", \"app.py\"]:指定容器启动时执行的命令,这里就是运行我们的 Flask 应用程序。

四、构建 Docker 镜像

       现在我们已经准备好了 Flask 应用程序代码和 Dockerfile,接下来就可以构建 Docker 镜像了。在终端中,切换到包含 app.pyDockerfile 的目录,然后运行以下命令:

docker build -t helloworld-flask .

       这里,docker build 是构建镜像的命令,-t 参数用于指定镜像的名称(这里是 flask-hello-world),最后的 . 表示使用当前目录下的 Dockerfile 来构建镜像。构建过程可能会花费一些时间,具体取决于你的网络状况和系统性能。在构建过程中,Docker 会按照 Dockerfile 中的指令逐步执行,下载基础镜像、安装依赖、复制文件等操作。

用 Docker 构建你的第一个 Python Flask 程序_dockerfile编写启动flsk项目


五、运行 Docker 容器

用 Docker 构建你的第一个 Python Flask 程序_dockerfile编写启动flsk项目

       镜像构建完成后,我们就可以通过 Docker 容器来运行我们的 Flask 应用程序了。在终端中运行以下命令:

docker run -p 5010:5000 helloworld-flask

       这个命令的含义是:启动一个名为 flask-hello-world 的 Docker 容器,并将容器内部的 5000 端口映射到宿主机的 5000 端口。这样,我们就可以通过访问宿主机的 5010 端口来访问运行在容器中的 Flask 应用程序了。

       打开你的浏览器,访问 http://localhost:5010,如果一切顺利,你应该会看到页面上显示“Hello, World!”,这表明我们的 Flask 应用程序已经成功运行在 Docker 容器中了。

用 Docker 构建你的第一个 Python Flask 程序_dockerfile编写启动flsk项目


六、总结与拓展

       通过上述步骤,我们成功地使用 Docker 构建并运行了一个简单的 Python Flask 程序“Hello World”。这个过程展示了 Docker 在简化应用程序部署方面的强大能力,即使是对于一个简单的 Flask 应用,也能让我们轻松地将其打包为一个独立的、可移植的容器镜像,无需担心环境配置问题。

       当然,这只是一个起点。在实际开发中,你的 Flask 应用可能会更加复杂,包含更多的依赖和配置。你可以通过修改 Dockerfile 来适应这些需求,例如添加更多的依赖安装指令、配置环境变量等。此外,Docker 还提供了许多高级功能,如 Docker Compose,可以让你更方便地管理多个容器的应用程序架构,实现服务的编排和部署。

       希望这篇文章能够激发你对 Docker 和 Flask 开发的兴趣,鼓励你进一步探索它们在实际项目中的应用。无论是构建小型的个人项目,还是大型的商业应用,Docker 和 Flask 都将是你的有力工具。