如果你需要在单机上快速部署多容器应用,直接用包管理器安装 Docker Compose 插件是最稳妥的方式,生产环境建议用二进制文件指定版本安装。
先说结论:Docker Compose 适合本地开发和中小规模部署,安装优先用系统包管理器,使用核心是写好 docker-compose.yml 配置文件。
- 适合:多容器应用编排、本地开发环境、测试环境部署
- 先看:确认 Docker 已安装、检查系统架构选择对应版本
- 建议:生产环境指定具体版本号,避免使用 latest 标签
命令速用版
如果只是想快速验证安装是否成功,执行下面三条命令即可:
# 检查 Docker Compose 版本
docker compose version
# 创建测试目录并编写配置文件
mkdir ~/compose-test && cd ~/compose-test
echo 'version: "3.8"
services:
web:
image: nginx:latest
ports:
- "8080:80"' > docker-compose.yml
# 启动服务
docker compose up -d启动后访问http://你的服务器 IP:8080,能看到 Nginx 欢迎页面说明一切正常。
为什么会这样
Docker Compose 本质上是一个编排工具,它读取docker-compose.yml文件里的服务定义,然后按顺序创建容器、配置网络和挂载卷。和手动执行多条docker run命令相比,它的优势在于配置可版本化、一键启停、服务依赖自动处理。
需要注意 Docker Compose 有两个命令形式:老版本用docker-compose(带连字符),新版本作为 Docker 插件用docker compose(空格分隔)。两者功能基本一致,但建议新环境直接用插件方式。
分步处理
1. 安装 Docker Compose
Ubuntu/Debian 系统:
# 更新包索引
sudo apt update
# 安装 Docker Compose 插件
sudo apt install docker-compose-plugin
# 验证安装
docker compose versionCentOS/RHEL 系统:
# CentOS/RHEL 8+
sudo yum install docker-compose-plugin
# 验证安装
docker compose version二进制文件安装(适合指定版本):
# 下载二进制文件
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose `--version`macOS 和 Windows:如果已安装 Docker Desktop,Docker Compose 已自动包含,无需单独安装。
2. 编写 docker-compose.yml
配置文件默认放在当前目录,文件名固定为docker-compose.yml或docker-compose.yaml。一个基础示例:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:这个配置定义了两个服务:web 使用 Nginx 镜像,db 使用 MySQL 镜像,web 依赖 db 先启动。
3. 启动和管理服务
# 后台启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs
# 停止并删除容器
docker compose down
# 重启某个服务
docker compose restart web
# 重新构建镜像
docker compose build `--no-cache`怎么验证是否生效
安装验证:运行docker compose version或docker-compose `--version`,能输出版本号说明安装成功。
服务验证:执行docker compose ps查看所有容器状态,状态列显示Up表示正常运行。
功能验证:根据配置文件中的端口映射,在浏览器访问对应端口,能正常加载页面说明服务可用。
日志检查:使用docker compose logs 服务名查看特定服务的日志输出,排查启动问题。
常见坑
版本兼容问题:v3 版本不支持volume_from、extends、group_add等属性,CPU 和内存设置移到了deploy中。如果从 v2 迁移需要注意语法变化。
网络下载失败:从 GitHub 下载二进制文件时可能因网络问题失败,可以尝试用wget替代curl,或更换下载源。
文件权限问题:二进制文件安装后忘记添加执行权限,导致命令无法执行,记得运行chmod +x。
配置文件错误:docker-compose.yml缩进错误会导致解析失败,YAML 对缩进敏感,建议用编辑器检查语法。
镜像拉取失败:国内网络从 Docker Hub 拉取镜像可能超时,可以配置镜像加速器或提前离线导入镜像。
端口冲突:主机端口已被占用会导致容器启动失败,启动前用netstat -tlnp检查端口占用情况。
参考来源
- Docker 官方文档 - Docker Compose 安装指南,https://docs.docker.com/compose/install/
- GitHub - Docker Compose Releases,https://github.com/docker/compose/releases
- 阿里云帮助中心 - 在 Linux 上安装 Docker 和 Docker Compose
- 阿里云开发者社区 - docker compose 详细使用教程