CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)
最近在 CentOS 7 上安装 Docker 时,直接执行 yum install docker-ce 提示 "没有可用软件包",这是因为系统默认的 YUM 源里没有 Docker 官方仓库。本文记录完整的安装步骤,包括配置国内镜像源、安装核心组件及常用插件,并附上常见错误的解决方法。
📌 环境说明
操作系统:CentOS 7 (x86_64)
内核版本:>= 3.10(Docker 官方要求)
目标安装:Docker CE(社区版)+ docker-compose 插件 + Buildx 插件
1️⃣ 卸载旧版本 Docker(可选但推荐)
如果之前安装过旧版本 Docker(如 docker‑io、docker‑engine),先执行卸载:
bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
说明:yum remove 不会删除已下载的镜像、容器和配置文件,后续可以放心安装新版。
2️⃣ 安装必要依赖工具
Docker 安装需要 yum-utils(提供 yum-config-manager)和存储驱动依赖:
bash
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
device-mapper-persistent-data 和 lvm2 用于管理 Docker 的存储驱动(devicemapper)。
3️⃣ 添加 Docker 软件源
官方源在国外,下载速度慢,推荐使用阿里云镜像源(国内用户首选):
bash
bash
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果不介意速度,也可以使用官方源:
bash
bash
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4️⃣ 更新 YUM 缓存并安装 Docker
bash
生成软件包缓存
bash
sudo yum makecache fast
安装 Docker 核心组件
bash
sudo yum install -y docker-ce docker-ce-cli containerd.io
注意:docker-ce-cli 是命令行工具,containerd.io 是容器运行时,三者缺一不可。
5️⃣ 安装 docker-compose 插件和 buildx 插件(可选)
从 Docker 23.0 开始,docker-compose 作为插件集成,推荐安装插件版:
bash
bash
sudo yum install -y docker-compose-plugin docker-buildx-plugin
安装后,可以使用 docker compose(注意中间没有横杠)和 docker buildx 命令。
6️⃣ 启动 Docker 并设置开机自启
bash
启动 Docker 守护进程
bash
sudo systemctl start docker
设置开机自动启动
bash
sudo systemctl enable docker
查看服务状态
bash
sudo systemctl status docker
7️⃣ 验证安装是否成功
查看 Docker 版本
bash
bash
docker --version
输出示例:Docker version 27.0.3, build 7f6b7b9
运行 Hello World 测试
bash
bash
sudo docker run hello-world
如果看到 Hello from Docker! 信息,说明安装成功。
验证 compose 插件
bash
bash
docker compose version
输出示例:Docker Compose version v2.28.1
8️⃣ 常见问题及解决方法
❌ 问题1:yum-config-manager: command not found
原因:缺少 yum-utils 包。
解决:执行第 2 步的命令安装即可。
❌ 问题2:安装时提示 没有可用软件包 docker-ce
原因:没有添加 Docker 官方源或阿里镜像源。
解决:重新执行第 3 步添加源,然后 yum makecache fast。
❌ 问题3:Cannot connect to the Docker daemon
原因:Docker 服务未启动或启动失败。
解决:
bash
bash
sudo systemctl start docker
sudo journalctl -u docker # 查看详细错误日志
❌ 问题4:container-selinux 依赖错误
原因:CentOS 7 默认的 container-selinux 版本过低。
解决:手动安装兼容版本:
bash
bash
sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
然后重新安装 Docker。
❌ 问题5:docker buildx 或 docker compose 命令找不到
原因:未安装对应插件。
解决:执行第 5 步安装插件包。
📦 附:一键安装脚本(适合懒人)
将以下内容保存为 install_docker.sh,然后 bash install_docker.sh 即可全自动安装。
bash
#!/bin/bash
set -e
卸载旧版本
sudo yum remove -y docker docker-client docker-client-latest docker-common
docker-latest docker-latest-logrotate docker-logrotate docker-engine || true
安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加阿里云源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io
安装插件(可选)
sudo yum install -y docker-compose-plugin docker-buildx-plugin || echo "插件安装跳过"
启动并启用
sudo systemctl start docker
sudo systemctl enable docker
验证
docker --version
docker compose version
echo "Docker 安装完成!"
📚 参考链接
Docker 官方安装文档
阿里云 Docker CE 镜像站
💬 总结
CentOS 7 安装 Docker 的关键步骤就是:添加正确的 YUM 源 → 安装核心包 → 启动服务。按照本文的步骤操作,基本不会出错。如果遇到依赖问题,耐心解决即可。
希望这篇教程能帮助到你,如果觉得有用,欢迎点赞、收藏、评论~ 😊