install_docker.sh
#!/bin/bash
set -e # 脚本执行过程中若出现错误则立即退出# ===================== 1. 权限检查 =====================
if [ "$(id -u)" -ne 0 ]; then
echo "❌ 错误:本脚本需以 root 权限运行,请使用 sudo 或切换至 root 用户后执行"
exit 1
fiecho "✅ 权限检查通过,开始执行 Docker 安装流程..."
# ===================== 2. 彻底清理旧仓库配置(关键步骤) =====================
echo -e "\n🔧 第一步:彻底清理所有 Docker 相关仓库配置..."
# 删除所有可能的 Docker 仓库配置文件
rm -f /etc/yum.repos.d/docker-* /etc/yum.repos.d/*docker*.repo
# 清除所有仓库缓存
dnf clean all
rm -rf /var/cache/dnf/*
# 确保没有残留的阿里云配置
sed -i '/mirrors.aliyun.com/d' /etc/yum.conf 2>/dev/null || true
# ===================== 3. 卸载旧版本 Docker =====================
echo -e "\n🔧 第二步:卸载系统中已有的旧版 Docker 组件..."
dnf remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-ce \
docker-ce-cli || true # 若没有旧版本,忽略错误
# ===================== 4. 安装依赖工具 =====================
echo -e "\n🔧 第三步:安装依赖工具..."
dnf install -y dnf-utils \
device-mapper-persistent-data \
lvm2
# ===================== 5. 配置华为云 Docker 源(确保纯净) =====================
echo -e "\n🔧 第四步:配置华为云 Docker 源..."
# 直接创建全新的华为云仓库配置(确保无阿里云残留)
cat > /etc/yum.repos.d/docker-ce.repo << EOF
[docker-ce-stable]
name=Docker CE Stable - \$basearch
baseurl=https://mirrors.huaweicloud.com/docker-ce/linux/centos/8/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo \$basearch
baseurl=https://mirrors.huaweicloud.com/docker-ce/linux/centos/8/debug-\$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.huaweicloud.com/docker-ce/linux/centos/8/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/docker-ce/linux/centos/gpg
EOF# 验证仓库配置是否正确(关键检查)
echo -e "\n📌 验证仓库配置(确保是华为云地址):"
grep baseurl /etc/yum.repos.d/docker-ce.repo# 刷新缓存(强制重新加载配置)
dnf makecache
# ===================== 6. 安装 Docker 核心组件 =====================
echo -e "\n🔧 第五步:安装 Docker 核心组件..."
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin# 验证安装的组件版本
echo -e "\n📌 已安装组件版本:"
docker --version
containerd --version
docker compose version
# ===================== 7. 启动 Docker 服务并配置开机自启 =====================
echo -e "\n🔧 第六步:启动 Docker 服务并设置开机自启..."
systemctl start docker
systemctl enable docker
systemctl status docker --no-pager
# ===================== 8. 配置华为云镜像加速 =====================
echo -e "\n🔧 第七步:配置华为云镜像加速..."
mkdir -p /etc/docker# 华为云容器镜像服务加速地址
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://05f073ad3c0000f6.mirror.swr.myhuaweicloud.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOFsystemctl daemon-reload
systemctl restart docker
# ===================== 9. 验证 Docker 功能 =====================
echo -e "\n🔧 第八步:验证 Docker 功能..."
docker run --rm hello-worldecho -e "\n🎉 Docker 安装及配置完成!所有功能验证通过!"