前言
在开发多服务应用时,手动管理容器间的依赖关系和网络配置可能非常繁琐。Docker Compose 作为官方推荐的容器编排工具,通过一个简单的YAML文件即可定义复杂的多容器应用。本文将以一个经典的Flask+Redis访问计数器为例,手把手教你如何通过Docker Compose实现服务编排。
一、项目结构与准备
首先创建项目目录并初始化文件:
mkdir myapp && cd myapp
touch Dockerfile app.py docker-compose.yml requirements.txt
最终的目录结构如下:
.
├── Dockerfile # Python应用镜像构建文件
├── app.py # Flask应用核心代码
├── docker-compose.yml # 服务编排配置文件
└── requirements.txt # Python依赖清单
二、关键文件解析
1. Dockerfile - 构建Python应用镜像
FROM python:3.9-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "4", "app:app"]
- 使用轻量级Alpine Linux镜像
- 安装依赖后复制全部代码
- 使用Gunicorn作为生产服务器(需在requirements.txt包含
flask gunicorn redis
)
2. app.py - Flask应用逻辑
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis