分为 13 个部分:简介 → 核心概念 → 版本说明 → 安装方法 → 卸载方法 → 快速示例 → docker-compose.yml 结构 → 常用命令详解 → 高级选项 → 日常场景 → 扩容与多环境 → 调试技巧 → 总结
🐳 Docker Compose 全指南(2026 修订版)
1️⃣ 简介 💡
Docker Compose 是 Docker 官方推出的编排(Orchestration)工具,可以让你用一个命令启动一整套多容器应用。 它的定位是:
“定义并运行多个 Docker 容器应用”
背景:
单个容器可以用
Dockerfile定义并运行 ✅但很多软件系统需要 多个容器协作(Web + 数据库 + 缓存 + Nginx 负载均衡)
Compose 就是用 一个 YAML 文件 来定义 这些容器的关系、参数、网络,然后一次性启动、停止、管理。
2️⃣ 核心概念 🧩
服务 (Service):项目的某一个功能模块对应的容器(可以是多个实例),如
web服务、db服务。项目 (Project):一组关联服务构成的业务完整单元。 👉 在
docker-compose.yml中定义。
关系图:
项目 (Project)
├─ web (Service)
├─ db (Service)
└─ redis (Service)3️⃣ Compose V2 🔄
🐹 最新版本 Compose V2 已由 Go 语言重写,并集成到 Docker CLI:
docker compose up而老版(Python 写的)是:
docker-compose up📌 区别:
V2 更快、更稳定
Docker Desktop(Mac/Windows)自带 V2
Linux 用户可手动安装
4️⃣ 安装方法 ⚙️
支持平台:
Linux 🐧
macOS 🍎
Windows 10 💻
📦 Pip 安装(ARM 架构常用)
sudo pip install -U docker-compose适合树莓派等 ARM 设备
💽 二进制包安装(Linux 常用)
sudo curl -L \
https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m) \
> /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose国内加速下载:
sudo curl -L \
https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m) \
> /usr/local/bin/docker-compose🐚 Bash 命令补全
curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose \
> /etc/bash_completion.d/docker-compose5️⃣ 卸载方法 🗑
二进制安装删除:
sudo rm /usr/local/bin/docker-composePip 安装删除:
sudo pip uninstall docker-compose6️⃣ 快速使用示例 🚀
我们用 Flask + Redis 创建一个记录页面访问次数的 Web 应用。
📂 项目目录结构
myapp/
├── app.py
├── Dockerfile
└── docker-compose.yml📝 app.py
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
count = redis.incr('hits')
return f'Hello World! 页面已访问 {count} 次。\n'
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)🐳 Dockerfile
FROM python:3.6-alpine
ADD . /code
WORKDIR /code
RUN pip install redis flask
CMD ["python", "app.py"]📜 docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"▶️ 启动
docker-compose up访问 localhost:5000 ➡ 刷新页面计数+1。
7️⃣ docker-compose.yml 结构 🧾
version: '3'
services:
service_name:
build: .
image: redis:alpine
environment:
- VAR=value
ports:
- "5000:5000"
volumes:
- ./data:/var/lib/mysql
networks:
- backend
networks:
backend:📌 核心字段:
services:定义容器服务
volumes:数据持久化
ports:端口映射
environment:环境变量
networks:容器网络
8️⃣ 常用命令详解 🛠
9️⃣ 高级选项 🔧
-d👉 后台运行--no-deps👉 不启动依赖容器--build👉 强制重新构建镜像--force-recreate👉 强制重建容器--no-recreate👉 已有容器不重建
🔟 日常场景 🎯
Web开发:前后端分离项目
数据库测试:临时启动 MySQL/PostgreSQL
微服务调试:快速启动依赖服务
1️⃣1️⃣ 扩容与多环境 📦
扩容:
docker-compose scale web=3 db=2多环境:
docker-compose -f docker-compose.yml -f prod.yml up -d1️⃣2️⃣ 调试技巧 🧪
前台运行:
docker-compose up单服务调试:
docker-compose up --no-deps -d web查看容器进程:
docker-compose top1️⃣3️⃣ 总结 📌
Docker Compose 是多容器管理的神兵利器:
一个文件 定义完整应用结构
一条命令 启动和停止全部服务
跨平台(Linux/macOS/Windows)
支持扩容、调试、日志查看
评论区