本文将指导您如何使用 Docker 和 Docker Compose 快速部署一个简单的 Flask 应用程序。我们将从零开始,逐步构建所需的文件和配置。

项目结构准备

首先,创建一个项目文件夹,并按照以下结构组织文件:

project_folder/
│
├── app/
│   └── app.py
│
├── Dockerfile
└── requirements.txt

Flask 应用程序

app 文件夹中,创建一个名为 app.py 的 Python 文件,包含以下 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')

依赖文件

在项目根目录下创建 requirements.txt 文件,并添加 Flask 作为依赖:

Flask

Dockerfile 配置

在项目根目录下创建 Dockerfile,用于定义容器的构建步骤:

# 使用官方 Python 3 镜像作为基础镜像
FROM python:3

# 设置工作目录
WORKDIR /app

# 复制 requirements.txt 到 /app 目录下
COPY requirements.txt .

# 安装依赖
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

# 复制 Flask 应用到 /app 目录
COPY app /app

# 设置容器启动时执行的命令
CMD ["python", "app.py"]

Docker Compose 文件

接下来,创建 docker-compose.yml 文件,以便使用 Docker Compose 来构建和运行容器:

version: '3.8'

services:
  python310:
    build: .
    container_name: python310_container
    volumes:
      - ./app:/app
    working_dir: /app
    ports:
      - "5000:5000"
    command: python app.py

构建与运行

现在,一切准备就绪。在项目根目录下运行以下命令,构建并启动您的 Docker 容器:

docker-compose up --build

容器构建完成并运行后,Flask 应用将在端口 5000 上监听。通过访问 http://localhost:5000/,您可以看到应用返回的 “Hello, Docker!” 消息。

结语

通过本文的指南,您可以看到,使用 Docker 和 Docker Compose 部署 Flask 应用是一个简单直接的过程。此方法不仅能加快开发和部署的速度,还能确保应用在不同环境中的一致性。希望这篇文章能帮助您更好地理解和使用 Docker 来部署您的 Flask 应用。