Docker Compose 安装指南 🐳
本文详细介绍了如何在不同架构的 Linux 系统上安装 Docker Compose,包括 x86_64 和 ARM 架构,并提供国内外镜像源的选择。
目录 📚
✨ Docker Compose 简介
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件配置应用服务,就可以使用单个命令创建并启动所有服务。
🌟 主要特性
- 🚀 简化多容器应用部署:使用简单的 YAML 文件定义复杂的多容器应用
- 🔄 环境隔离:支持为不同环境(开发、测试、生产)创建独立的配置
- 📦 服务依赖管理:自动处理服务之间的依赖关系和启动顺序
- ⚡ 快速扩展:轻松扩展服务的实例数量
- 🔧 开发效率:提供热重载、日志聚合等开发友好功能
- 🌐 跨平台兼容:支持 Linux、Windows 和 macOS 平台
官方资源:
- GitHub 地址:https://github.com/docker/compose/releases
- 官方文档:https://docs.docker.com/compose/
- 国内镜像地址:https://mirror.azure.cn/docker-toolbox/linux/compose
🚀 一、Linux x86_64 架构安装
1. FnOS GitHub 官方源安装
1
2
3
4
|
# 下载最新版本的 Docker Compose
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
|
2. FnOS 国内镜像源安装
1
2
3
4
|
# 使用国内镜像下载 Docker Compose
sudo curl -L "https://mirror.azure.cn/docker-toolbox/linux/compose/v2.29.2/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
docker-compose version
|
1
|
ls -la /usr/local/bin/docker-compose
|
3. Debian GitHub 官方源安装
1
2
3
4
|
# 下载最新版本的 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose && \
sudo chmod +x /usr/bin/docker-compose && \
docker-compose version
|
4. Debian 国内镜像源安装
1
2
3
4
|
# 使用国内镜像下载 Docker Compose
sudo curl -L "https://mirror.azure.cn/docker-toolbox/linux/compose/v2.29.2/docker-compose-linux-x86_64" -o /usr/bin/docker-compose && \
sudo chmod +x /usr/bin/docker-compose && \
docker-compose version
|
1
|
ls -la /usr/bin/docker-compose
|
5. 卸载旧版本
1
2
3
4
5
6
7
8
9
|
# 删除现有 Docker Compose
sudo rm -rf /usr/local/bin/docker-compose
sudo rm -rf /usr/bin/docker-compose
# 确认已删除
which docker-compose || echo "Docker Compose 已成功移除"
# 同时删除自动补全文件(如果存在)
sudo rm -f /etc/bash_completion.d/docker-compose
|
🍓 二、iStoreOS (ARM 架构) 安装
1️⃣ 确定系统架构
在安装前,请先确定您的系统架构:
1
2
3
4
5
6
7
8
9
10
|
# 查看系统架构
uname -m
# 可能的输出:
# - x86_64: Intel/AMD 64位架构
# - aarch64: ARM 64位架构
# - armv7l: ARM 32位架构
# 查看系统详细信息
cat /etc/os-release
|
2️⃣ ARM64 (aarch64) 架构安装
从 GitHub 官方源安装
1
2
3
4
5
6
7
8
9
|
# 下载 ARM64 版本的 Docker Compose
COMPOSE_VERSION="v2.29.2"
sudo wget -O /usr/local/bin/docker-compose "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-linux-aarch64"
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
ls -la /usr/local/bin/docker-compose
|
使用国内镜像加速安装
1
2
3
4
5
6
7
8
9
|
# 使用国内镜像下载 ARM64 版本
COMPOSE_VERSION="v2.29.2"
sudo wget -O /usr/local/bin/docker-compose "https://mirror.azure.cn/docker-toolbox/linux/compose/${COMPOSE_VERSION}/docker-compose-linux-aarch64"
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证文件
file /usr/local/bin/docker-compose
|
3️⃣ ARMv7 (armv7l) 架构安装
1
2
3
4
5
6
7
8
9
|
# 对于 ARMv7 架构,需要使用不同的二进制文件
COMPOSE_VERSION="v2.29.2"
sudo wget -O /usr/local/bin/docker-compose "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-linux-armv7"
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
|
4️⃣ 卸载旧版本
1
2
3
4
5
6
|
# 删除现有 Docker Compose
sudo rm -rf /usr/local/bin/docker-compose
sudo rm -rf /usr/bin/docker-compose
# 确认已删除
which docker-compose || echo "Docker Compose 已成功移除"
|
🔍 三、验证安装
1️⃣ 检查 Docker Compose 版本
1
2
3
4
5
6
7
8
|
# 查看 Docker Compose 版本
docker-compose --version
# 或者使用更详细的版本信息
docker-compose version
# 检查 Docker Compose 是否正常工作
docker-compose --help | head -10
|
2️⃣ 测试 Docker Compose 功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 创建一个简单的测试配置
mkdir -p /tmp/test-compose && cd /tmp/test-compose
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
hello-world:
image: hello-world
container_name: test-hello-world
EOF
# 运行测试
docker-compose up
# 查看容器状态
docker-compose ps
# 停止并移除容器
docker-compose down
# 清理测试文件
cd ~ && rm -rf /tmp/test-compose
|
3️⃣ 验证架构兼容性
1
2
3
4
5
6
|
# 检查 Docker Compose 二进制文件的架构
file $(which docker-compose)
# 检查系统架构与 Docker Compose 是否匹配
echo "系统架构: $(uname -m)"
echo "Docker Compose 架构: $(file $(which docker-compose) | grep -o 'ELF [^,]*' | cut -d' ' -f2)"
|
⚙️ 四、高级配置和优化
1️⃣ 设置命令自动补全
1
2
3
4
5
6
7
8
9
10
11
|
# 为 Docker Compose 设置 Bash 自动补全
COMPOSE_VERSION=$(docker-compose version --short)
sudo curl -L "https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose" -o /etc/bash_completion.d/docker-compose
# 重新加载 Bash 配置
source /etc/bash_completion.d/docker-compose
# 对于当前用户,也可以安装到用户目录
curl -L "https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose" -o ~/.docker-compose-completion.bash
echo "source ~/.docker-compose-completion.bash" >> ~/.bashrc
source ~/.bashrc
|
2️⃣ 创建别名简化命令
1
2
3
4
5
6
7
8
9
10
11
12
|
# 在 ~/.bashrc 或 ~/.zshrc 中添加别名
echo "alias dc='docker-compose'" >> ~/.bashrc
echo "alias dcup='docker-compose up -d'" >> ~/.bashrc
echo "alias dcdown='docker-compose down'" >> ~/.bashrc
echo "alias dclogs='docker-compose logs -f'" >> ~/.bashrc
echo "alias dcpull='docker-compose pull'" >> ~/.bashrc
echo "alias dcbuild='docker-compose build'" >> ~/.bashrc
echo "alias dcrestart='docker-compose restart'" >> ~/.bashrc
echo "alias dcps='docker-compose ps'" >> ~/.bashrc
# 重新加载配置
source ~/.bashrc
|
3️⃣ 使用 Docker Compose V2
Docker Compose V2 是作为 Docker CLI 插件提供的,安装方法略有不同:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 创建 Docker CLI 插件目录
mkdir -p ~/.docker/cli-plugins
# 下载 Docker Compose V2
COMPOSE_VERSION="v2.29.2"
curl -SL "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-linux-$(uname -m)" -o ~/.docker/cli-plugins/docker-compose
# 添加执行权限
chmod +x ~/.docker/cli-plugins/docker-compose
# 验证安装
docker compose version
# 设置系统级安装(可选)
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo cp ~/.docker/cli-plugins/docker-compose /usr/local/lib/docker/cli-plugins/
|
4️⃣ 配置 Docker Compose 环境
1
2
3
4
5
6
7
8
|
# 设置 Docker Compose 环境变量
echo "export COMPOSE_HTTP_TIMEOUT=120" >> ~/.bashrc
echo "export COMPOSE_PARALLEL_LIMIT=10" >> ~/.bashrc
echo "export COMPOSE_FILE=docker-compose.yml:docker-compose.override.yml" >> ~/.bashrc
echo "export COMPOSE_PROJECT_NAME=myproject" >> ~/.bashrc
# 重新加载配置
source ~/.bashrc
|
🔧 五、故障排除
❓ 常见问题及解决方案
-
权限不足错误:
1
2
3
4
5
6
|
# 确保有足够的权限执行命令
sudo chmod +x /usr/local/bin/docker-compose
# 或者将用户添加到 docker 组
sudo usermod -aG docker $USER
newgrp docker
|
-
架构不匹配错误:
1
2
3
4
5
6
7
8
9
10
11
12
|
# 检查系统架构
uname -m
# 根据架构下载正确的版本
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
# 下载 x86_64 版本
elif [ "$ARCH" = "aarch64" ]; then
# 下载 ARM64 版本
elif [ "$ARCH" = "armv7l" ]; then
# 下载 ARMv7 版本
fi
|
-
命令未找到错误:
1
2
3
4
5
6
7
8
|
# 检查是否在 PATH 中
echo $PATH
# 或者创建符号链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 检查文件是否存在
ls -la /usr/local/bin/docker-compose
|
-
版本兼容性问题:
1
2
3
4
5
6
7
8
|
# 检查 Docker Engine 版本
docker version
# 检查 Docker Compose 版本
docker-compose version
# 确保 Docker Compose 版本与 Docker Engine 兼容
# 通常最新版本的 Docker Compose 与较新版本的 Docker Engine 兼容
|
-
证书问题:
1
2
3
4
5
|
# 如果遇到 SSL 证书问题,可以临时跳过验证
sudo curl -k -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
# 或者使用 HTTP 替代 HTTPS
sudo curl -L "http://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
|
🐛 诊断命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 检查 Docker Compose 安装路径
which docker-compose
# 检查文件类型和架构
file $(which docker-compose)
# 检查执行权限
ls -la $(which docker-compose)
# 检查依赖库
ldd $(which docker-compose)
# 检查系统架构
uname -m
# 检查 Docker 服务状态
systemctl status docker
# 检查用户组 membership
groups $USER
# 检查 Docker Compose 版本兼容性
docker-compose version
docker version
|
📊 六、版本管理
1️⃣ 安装特定版本
1
2
3
4
5
6
7
8
|
# 安装特定版本的 Docker Compose
VERSION="2.29.2"
ARCH=$(uname -m)
sudo curl -L "https://github.com/docker/compose/releases/download/v${VERSION}/docker-compose-linux-${ARCH}" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证版本
docker-compose --version
|
2️⃣ 多版本管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# 创建版本管理目录
mkdir -p ~/bin/docker-compose
# 下载多个版本
curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-$(uname -m)" -o ~/bin/docker-compose/docker-compose-2.29.2
curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-linux-$(uname -m)" -o ~/bin/docker-compose/docker-compose-2.28.1
curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-$(uname -m)" -o ~/bin/docker-compose/docker-compose-2.27.0
# 添加执行权限
chmod +x ~/bin/docker-compose/*
# 设置当前使用的版本
ln -sf ~/bin/docker-compose/docker-compose-2.29.2 /usr/local/bin/docker-compose
# 创建切换版本的脚本
cat > /usr/local/bin/dc-version << 'EOF'
#!/bin/bash
if [ $# -eq 0 ]; then
echo "可用版本:"
ls ~/bin/docker-compose/ | sed 's/docker-compose-//g'
exit 0
fi
VERSION=$1
if [ -f ~/bin/docker-compose/docker-compose-${VERSION} ]; then
ln -sf ~/bin/docker-compose/docker-compose-${VERSION} /usr/local/bin/docker-compose
echo "已切换到 Docker Compose 版本: ${VERSION}"
docker-compose --version
else
echo "错误: 版本 ${VERSION} 不存在"
exit 1
fi
EOF
chmod +x /usr/local/bin/dc-version
|
3️⃣ 版本升级
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 检查当前版本
docker-compose --version
# 备份当前版本
cp $(which docker-compose) $(which docker-compose).bak
# 下载最新版本
LATEST_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_VERSION}/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证新版本
docker-compose --version
|
🎯 总结
通过本文的指导,您已经学会了:
- ✅ 多种架构支持:x86_64、ARM64 (aarch64) 和 ARMv7 架构的安装方法
- ✅ 多源选择:国内外镜像源的安装方式,包括官方 GitHub 和国内镜像
- ✅ 版本管理:安装特定版本、管理多版本和升级版本的方法
- ✅ 故障排除:常见问题的诊断和解决方法
- ✅ 高级配置:自动补全、别名设置、环境变量等优化配置
- ✅ 验证方法:安装后的验证和测试方法
现在您可以开始使用 Docker Compose 来管理多容器应用了!🐳🚀
🌟 温馨提示
- 版本兼容性:确保 Docker Compose 版本与 Docker Engine 兼容,建议使用相同的主要版本
- 定期更新:定期检查并更新到最新版本以获得新功能和安全补丁
- 备份配置:重要的 docker-compose.yml 文件应纳入版本控制系统(如 Git)
- 安全考虑:从官方源或可信镜像下载,避免使用未经验证的二进制文件
- 文档参考:查阅官方文档了解最新功能和最佳实践
- 性能优化:对于生产环境,调整 COMPOSE_HTTP_TIMEOUT 和 COMPOSE_PARALLEL_LIMIT 环境变量
- 网络考虑:在内网环境中,可以设置本地镜像仓库加速下载
- 监控日志:定期检查 Docker Compose 日志,及时发现和解决问题
开始使用 Docker Compose 简化您的容器编排工作吧!🎉