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

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

相关推荐
IT瑞先生8 小时前
Docker快速部署Mysql的三种方法——实操篇
mysql·adb·docker
梦远青城8 小时前
Docker 部署python的paddle进行OCR文字识别身份证
python·docker·ocr·paddle·身份证识别
java_logo9 小时前
ELK Docker Compose 部署指南:轻松搭建日志检索平台
elk·elasticsearch·docker·容器·kibana·logstash·轩辕镜像
ShallWeL10 小时前
Orin 上用 Docker 跑通目标检测功能
人工智能·目标检测·docker·容器
看-是灰机12 小时前
使用go语言实现对接
linux·开发语言·后端·docker·语言模型·golang·飞书
关关长语1 天前
Wsl解决MySQL容器跨域权限问题
mysql·docker·容器
IT小辉同学1 天前
# Milvus v3.0-beta docker-compose 启动失败完整排错教程
docker·eureka·milvus
AOwhisky1 天前
Linux(CentOS)系统管理入门笔记(第九期)——文件权限进阶:SUIDSGIDSticky、ACL 与 chattr
linux·运维·笔记·centos·云计算·文件权限管理
暖和_白开水1 天前
数据分析agent 四:docker qdrant 镜像拉取,和教程
docker·数据挖掘·数据分析
tryxr2 天前
Spring Cloud eureka
spring·spring cloud·eureka