方案一:独立安装 Docker Compose(推荐)
安装方法
Linux 系统安装:
# 1. 下载最新版本(请查看官网获取最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 2. 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 3. 验证安装
docker-compose --version
macOS 安装(通过 Homebrew):
brew install docker-compose
Windows 安装(Docker Desktop 自带):
- Docker Desktop for Windows 已包含 Compose,无需单独安装
优势
版本控制灵活:可自由选择特定版本
独立更新:Compose 可单独升级,不影响 Docker 本身
轻量级:二进制文件体积小
方案二:作为 Docker CLI 插件安装(新版推荐)
Docker Compose V2 已改为 Docker CLI 插件形式。
安装方法
Linux 系统:
# 1. 创建插件目录
mkdir -p ~/.docker/cli-plugins
# 2. 下载插件
curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64" -o ~/.docker/cli-plugins/docker-compose
# 3. 添加执行权限
chmod +x ~/.docker/cli-plugins/docker-compose
# 4. 验证安装(注意命令变化)
docker compose version
通过 Docker 官方仓库安装:
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker-compose-plugin
# CentOS/RHEL
sudo yum install docker-compose-plugin
优势
官方推荐:Docker 官方维护的安装方式
命令集成:使用
docker compose 而非独立的
docker-compose
自动更新:可通过包管理器更新
更好的兼容性:与 Docker CLI 深度集成
基本使用教程
1. 编写 docker-compose.yml
创建示例配置文件:
version: '3.8' # Compose 文件版本
services:
# Web 服务
web:
image: nginx:latest
container_name: my-web
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
networks:
- app-network
# 数据库服务
db:
image: postgres:13
container_name: my-db
environment:
POSTGRES_PASSWORD: example
POSTGRES_DB: myapp
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- app-network
# Redis 缓存
redis:
image: redis:alpine
container_name: my-redis
networks:
- app-network
# 网络配置
networks:
app-network:
driver: bridge
# 卷配置
volumes:
postgres-data:
2. 常用命令
# 启动所有服务(后台运行)
docker-compose up -d # V1 方式
docker compose up -d # V2 插件方式
# 查看运行状态
docker-compose ps
docker compose ps
# 查看日志
docker-compose logs # 所有服务
docker-compose logs web # 特定服务
docker-compose logs -f # 实时跟踪
# 停止服务
docker-compose stop
# 停止并删除容器、网络
docker-compose down
# 停止并删除容器、网络、卷(数据也会删除)
docker-compose down -v
# 重启服务
docker-compose restart
# 构建/重新构建服务
docker-compose build
# 执行命令到特定容器
docker-compose exec web bash
docker-compose exec db psql -U postgres
# 查看服务依赖关系
docker-compose config
# 扩展服务实例数量
docker-compose up --scale web=3 -d
3. 环境变量配置
创建 .env 文件:
DB_PASSWORD=mysecretpassword
WEB_PORT=8080
在 docker-compose.yml 中使用:
version: '3.8'
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
web:
image: nginx
ports:
- "${WEB_PORT}:80"
4. 多环境配置
docker-compose.yml(基础配置):
services:
app:
image: myapp:${TAG:-latest}
environment:
- NODE_ENV=${NODE_ENV:-development}
docker-compose.override.yml(开发环境):
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- ./src:/app/src
docker-compose.prod.yml(生产环境):
services:
app:
restart: always
ports:
- "80:3000"
使用方式:
# 开发环境(自动合并基础配置和override)
docker-compose up
# 生产环境
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
版本迁移建议
从 V1 迁移到 V2
# 1. 卸载旧版本
sudo rm /usr/local/bin/docker-compose
# 2. 安装新版本(插件方式)
curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64" -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
# 3. 更新命令使用方式
# 旧:docker-compose up
# 新:docker compose up
最佳实践建议
版本选择:
- 新项目直接使用 V2 插件方式
- 现有项目可逐步迁移到 V2
文件组织:
project/
├── docker-compose.yml
├── docker-compose.prod.yml
├── docker-compose.dev.yml
├── .env
├── nginx/
└── app/
性能优化:
# 使用 buildx 进行多阶段构建
DOCKER_BUILDKIT=1 docker-compose build
# 并行启动服务
docker-compose up --parallel
健康检查配置:
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
两种方案都能满足日常开发需求,推荐新用户直接采用 方案二(插件方式),这是 Docker 官方的发展方向。