Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
看起来Docker没有正确安装。让我们从头开始,使用最简单可靠的方法:
方法一:使用官方脚本(强制继续)
# 重新下载安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 给脚本执行权限
chmod +x get-docker.sh
# 运行脚本并自动继续(忽略警告)
echo "y" | sudo sh get-docker.sh
方法二:检查并安装必要组件
1. 先检查是否有部分安装
# 查看是否安装了部分组件
rpm -qa | grep -E "docker|containerd"
# 如果有,全部卸载
sudo yum remove -y docker* containerd* runc*
2. 安装containerd(Docker的依赖)
# 安装containerd
sudo yum install -y containerd.io
# 启动containerd
sudo systemctl start containerd
sudo systemctl enable containerd
3. 安装Docker
# 安装Docker CE
sudo yum install -y docker-ce
# 如果上面失败,尝试指定版本
sudo yum install -y docker-ce-20.10.24
方法三:分步验证安装
步骤1:验证仓库配置
# 检查仓库文件
ls -la /etc/yum.repos.d/docker-ce.repo
# 查看仓库内容
cat /etc/yum.repos.d/docker-ce.repo
步骤2:检查可用的Docker包
# 查看可用的Docker包
sudo yum list docker-ce --showduplicates
步骤3:尝试安装基础版本
# 安装最基本的Docker版本
sudo yum install -y docker-ce docker-ce-cli
方法四:使用RPM直接安装
如果yum安装失败,直接下载RPM
# 进入临时目录
cd /tmp
# 下载RPM包
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.24-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.24-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.33-3.1.el7.x86_64.rpm
# 安装RPM包(按顺序)
sudo rpm -ivh containerd.io-1.6.33-3.1.el7.x86_64.rpm
sudo rpm -ivh docker-ce-cli-20.10.24-3.el7.x86_64.rpm
sudo rpm -ivh docker-ce-20.10.24-3.el7.x86_64.rpm
方法五:检查系统问题
1. 检查系统版本
# 确认是CentOS 7
cat /etc/redhat-release
# 检查内核版本(需要3.10以上)
uname -r
2. 检查SELinux状态
# 查看SELinux状态
getenforce
# 如果Enforcing,暂时禁用(重启后恢复)
sudo setenforce 0
# 永久禁用(编辑文件)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3. 检查防火墙
# 停止防火墙(仅用于测试)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
完整的一键修复脚本
#!/bin/bash
echo "=== 开始修复Docker安装 ==="
# 1. 清理旧版本
echo "1. 清理旧版本..."
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-engine-selinux
# 2. 安装依赖
echo "2. 安装依赖..."
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 3. 配置仓库
echo "3. 配置仓库..."
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4. 安装containerd
echo "4. 安装containerd..."
sudo yum install -y containerd.io
sudo systemctl start containerd
sudo systemctl enable containerd
# 5. 安装Docker
echo "5. 安装Docker..."
sudo yum install -y docker-ce docker-ce-cli
# 6. 启动服务
echo "6. 启动服务..."
sudo systemctl start docker
sudo systemctl enable docker
# 7. 验证
echo "7. 验证安装..."
sudo docker --version
if [ $? -eq 0 ]; then
echo "✓ Docker安装成功"
sudo docker run hello-world
else
echo "✗ Docker安装失败"
echo "尝试替代方案..."
# 尝试RPM安装
cd /tmp
wget -q https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.24-3.el7.x86_64.rpm
wget -q https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.24-3.el7.x86_64.rpm
sudo rpm -ivh docker-ce-20.10.24-3.el7.x86_64.rpm docker-ce-cli-20.10.24-3.el7.x86_64.rpm --nodeps --force
sudo systemctl start docker
sudo docker --version
fi
echo "=== 修复完成 ==="
快速诊断
请先运行以下命令,告诉我输出结果:
# 检查系统信息
cat /etc/redhat-release
uname -r
# 检查yum仓库
ls -la /etc/yum.repos.d/ | grep docker
# 尝试最简单的安装
sudo yum install -y docker
如果sudo yum install -y docker能够安装旧版本的docker(来自CentOS官方源),那么可以先安装它,然后再升级到Docker CE。
请先运行诊断命令,这样我可以根据你的具体情况给出更准确的解决方案。