WEBKT

手把手教你:Docker 容器化部署 Python Flask Web 应用

38 0 0 0

准备工作

1. 创建 Flask 应用

2. 编写 Dockerfile

3. 编写 docker-compose.yml

4. 构建镜像和运行容器

5. 停止和删除容器

总结

本文将引导你使用 Docker 容器化部署一个简单的 Python Flask Web 应用。我们将详细介绍如何编写 Dockerfiledocker-compose.yml 文件,以及如何进行镜像构建和容器编排,最终使你的 Flask 应用能够在 Docker 容器中稳定运行。

准备工作

在开始之前,请确保你已经安装了 Docker 和 Docker Compose。你可以从 Docker 官网下载并安装:

同时,你需要具备一定的 Python 和 Flask 基础知识。

1. 创建 Flask 应用

首先,创建一个简单的 Flask 应用。创建一个名为 app.py 的文件,内容如下:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Docker!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')

这个简单的 Flask 应用定义了一个根路由 /,访问该路由会返回 "Hello, Docker!"。

接下来,创建一个 requirements.txt 文件,用于指定 Flask 应用的依赖:

Flask

2. 编写 Dockerfile

在项目根目录下,创建一个名为 Dockerfile 的文件,内容如下:

FROM python:3.9-slim-buster

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

解释一下 Dockerfile 的每一行:

  • FROM python:3.9-slim-buster: 指定基础镜像为 Python 3.9 slim 版本,基于 Debian Buster。这是一个轻量级的镜像,适合用于生产环境。
  • WORKDIR /app: 设置工作目录为 /app,后续的命令会在该目录下执行。
  • COPY requirements.txt .: 复制 requirements.txt 文件到工作目录。
  • RUN pip install --no-cache-dir -r requirements.txt: 安装 requirements.txt 中指定的 Python 依赖。--no-cache-dir 可以减少镜像大小。
  • COPY . .: 复制当前目录下的所有文件到工作目录。
  • EXPOSE 5000: 声明容器暴露的端口为 5000。Flask 应用默认监听 5000 端口。
  • CMD ["python", "app.py"]: 定义容器启动时执行的命令。这里使用 python app.py 启动 Flask 应用。

3. 编写 docker-compose.yml

为了方便管理和运行容器,我们可以使用 Docker Compose。在项目根目录下,创建一个名为 docker-compose.yml 的文件,内容如下:

version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
environment:
- FLASK_DEBUG=1

解释一下 docker-compose.yml 的每一项:

  • version: "3.9": 指定 Docker Compose 文件的版本。
  • services: 定义服务。
  • web: 定义一个名为 web 的服务。
    • build: .: 指定使用当前目录下的 Dockerfile 构建镜像。
    • `ports:
      • "5000:5000": 将主机的 5000 端口映射到容器的 5000 端口。这样可以通过 http://localhost:5000` 访问 Flask 应用。
    • `volumes:
      • .:/app: 将当前目录挂载到容器的 /app` 目录。这样可以实现代码的实时更新,方便开发。
    • `environment:
      • FLASK_DEBUG=1: 设置环境变量 FLASK_DEBUG=1`,启用 Flask 的调试模式。

4. 构建镜像和运行容器

现在,我们可以使用 Docker Compose 构建镜像和运行容器了。在项目根目录下,执行以下命令:

docker-compose up --build

--build 参数会强制重新构建镜像。Docker Compose 会读取 docker-compose.yml 文件,自动构建镜像并启动容器。你可以在终端看到 Flask 应用的输出。

打开浏览器,访问 http://localhost:5000,你应该能看到 "Hello, Docker!"。这表明你的 Flask 应用已经成功运行在 Docker 容器中了。

5. 停止和删除容器

要停止和删除容器,可以执行以下命令:

docker-compose down

这个命令会停止并删除 Docker Compose 创建的所有容器、网络和卷。

总结

本文详细介绍了如何使用 Docker 容器化部署一个简单的 Python Flask Web 应用。通过编写 Dockerfiledocker-compose.yml 文件,我们可以轻松地构建镜像和运行容器,实现应用的快速部署和管理。希望这篇文章能帮助你更好地理解和使用 Docker。下次部署应用的时候,就不用再手动配置环境了,是不是很方便?快去试试吧!

Docker达人 DockerFlask容器化部署

评论点评

打赏赞助
sponsor

感谢您的支持让我们更好的前行

分享

QRcode

https://www.webkt.com/article/10074