好的,错误信息表明系统里还有一个旧版本的 Docker(docker-1.13.1)没有卸载干净,它和新版 docker-ce 产生了冲突。
我们需要先彻底移除所有旧版 Docker 相关包,然后再重新安装。
🧹 第一步:查看已安装的 Docker 相关包
bash
rpm -qa | grep docker
这会列出所有名称中包含 docker 的已安装包,请把输出结果发给我看看,或者直接按下面步骤全部卸载。
🗑️ 第二步:卸载所有旧版 Docker 包
你可以用这条命令一次性移除所有旧版 Docker 相关的包:
bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-selinux
如果上面的命令没有移除掉 docker-1.13.1,可以再执行一次更精准的移除:
bash
sudo yum remove docker-1.13.1*
或者直接用 rpm 强制删除(根据第一步查到的具体包名):
bash
sudo rpm -e docker-1.13.1-210.git7d71120.el7.centos.x86_64
注意 :如果
rpm -e提示依赖错误,可以加上--nodeps强制删除,但一般用yum remove就足够了。
🔄 第三步:清理残留文件和 yum 缓存
bash
sudo rm -rf /var/lib/docker
sudo rm -rf /var/run/docker.pid
sudo rm -rf /etc/docker
sudo yum clean all
✅ 第四步:重新安装 Docker CE
现在再次执行安装:
bash
sudo yum install docker-ce docker-ce-cli containerd.io
如果还是报冲突,可以尝试先安装 docker-ce-cli 和 containerd.io,再安装 docker-ce:
bash
sudo yum install docker-ce-cli containerd.io
sudo yum install docker-ce
🔧 第五步:关于 postfix 的依赖警告
你的输出里还有一条 postfix 缺少 libmysqlclient.so.18 的警告,这是系统里 postfix 邮件服务的一个问题,不影响 Docker 的安装和使用 ,可以暂时忽略。如果你想修复,可以安装 mysql-community-libs-compat 或 perl-DBD-MySQL 等包,但这不是必须的。
bash
cd /root
请先执行第一步 和第二步,把旧 Docker 彻底卸载掉,然后再继续后续步骤。如果过程中有任何问题,把输出贴给我,我帮你排查。 😊
方案一:配置 Docker 镜像加速(推荐)
先看看有没有配置:
bash
cat /etc/docker/daemon.json
如果没有,创建:
bash
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.net",
"https://mirror.baidubce.com"
]
}
EOF
然后重启 Docker:
bash
systemctl daemon-reload
systemctl restart docker
检查是否生效:
bash
docker info
看到类似:
text
Registry Mirrors:
https://docker.m.daocloud.io/
说明配置成功。
