CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)

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 源 → 安装核心包 → 启动服务。按照本文的步骤操作,基本不会出错。如果遇到依赖问题,耐心解决即可。

希望这篇教程能帮助到你,如果觉得有用,欢迎点赞、收藏、评论~ 😊

相关推荐
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1117 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽8 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
武子康10 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn8613 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
JLWcai2025100913 天前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm