专业编程基础技术教程

网站首页 > 基础教程 正文

Flask Docker Demo 项目指南

ccvgpt 2025-05-15 16:49:18 基础教程 2 ℃

以下是一份详细的 Flask Docker Demo 项目指南,帮助你快速搭建一个容器化的 Flask 应用。


1. 项目目标

Flask Docker Demo 项目指南

创建一个简单的 Flask 应用,并使用 Docker 将其容器化,实现以下功能:

  • 运行一个返回 "Hello, Dockerized Flask!" 的 API
  • 通过 Docker Compose 管理容器化服务
  • 可选的扩展:添加 Redis 作为缓存服务

2. 环境准备

  • 安装 Docker
  • 安装 Docker Compose(通常包含在 Docker Desktop 中)
  • Python 3.x(本地开发可选)

3. 项目结构

bash

flask-docker-demo/

├── app/

│ ├── __init__.py

│ └── routes.py

├── requirements.txt

├── Dockerfile

└── docker-compose.yml


4. 分步实现

步骤 1: 创建 Flask 应用

  1. 新建项目目录并进入:

bash

mkdir flask-docker-demo && cd flask-docker-demo

  1. 创建 app 目录和代码文件:

python

# app/__init__.py

from flask import Flask


app = Flask(__name__)


from app import routes

python

# app/routes.py

from app import app


@app.route('/')

def hello():

return "Hello, Dockerized Flask!"

  1. 生成依赖文件 requirements.txt

txt

Flask==3.0.0

步骤 2: 编写 Dockerfile

dockerfile

# 使用官方 Python 基础镜像

FROM python:3.9-slim


# 设置工作目录

WORKDIR /app


# 复制依赖文件并安装

COPY requirements.txt .

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


# 复制应用代码

COPY . .


# 暴露端口

EXPOSE 5000


# 启动命令

CMD ["flask", "run", "--host=0.0.0.0"]

步骤 3: 构建并运行 Docker 镜像

bash

# 构建镜像

docker build -t flask-docker-demo .


# 运行容器(映射端口 5000)

docker run -p 5000:5000 flask-docker-demo

访问 http://localhost:5000 查看结果。


5. 使用 Docker Compose

  1. 创建 docker-compose.yml

yaml

version: '3.8'

services:

web:

build: .

ports:

- "5000:5000"

environment:

- FLASK_DEBUG=1

  1. 启动服务:

bash

docker-compose up --build


6. 扩展:添加 Redis 缓存

  1. 修改 docker-compose.yml

yaml

version: '3.8'

services:

web:

build: .

ports:

- "5000:5000"

environment:

- FLASK_DEBUG=1

depends_on:

- redis


redis:

image: "redis:alpine"

ports:

- "6379:6379"

  1. 更新 Flask 代码使用 Redis:

python

# routes.py

from flask import Flask

import redis


app = Flask(__name__)

cache = redis.Redis(host='redis', port=6379)


@app.route('/visits')

def visits():

count = cache.incr('visits')

return f"Total visits: {count}"

  1. 更新 requirements.txt

txt

Flask==3.0.0

redis==4.5.5


7. 常用命令

bash

# 停止并删除容器

docker-compose down


# 查看运行中的容器

docker ps


# 查看容器日志

docker-compose logs web


# 进入容器 Shell

docker exec -it <container_id> /bin/bash


8. 常见问题

  1. 端口冲突:确保主机端口(如 5000)未被其他程序占用
  2. 依赖安装失败:检查 requirements.txt 格式是否正确
  3. 容器间通信问题:使用 Docker Compose 的服务名(如 redis)作为主机名
  4. 缓存问题:构建时添加 --no-cache 参数重建镜像:

bash

docker-compose build --no-cache


9. 项目仓库示例

完整代码参考:GitHub Flask-Docker-Demo(虚构链接)


通过本指南,您已掌握如何将 Flask 应用 Docker 化,并实现多容器协作。下一步可探索:

  • Docker 网络配置
  • 数据卷持久化存储
  • CI/CD 管道集成
  • Kubernetes 部署

Tags:

最近发表
标签列表