CentOS8安装Docker报错问题解决

发布时间 2023-08-06 12:50:54作者: nuccch

问题描述

CentOS版本:8.5.2111。

# cat /etc/redhat-release 
CentOS Linux release 8.5.2111

安装准备:

# 安装所需软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置docker仓库:推荐阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装最新版Docker时报错:

# sudo yum install docker-ce
Error: 
 Problem: package docker-ce-3:24.0.5-1.el8.x86_64 requires containerd.io >= 1.6.4, but none of the providers can be installed

大概意思是安装的最新版docker-ce-3:24.0.5-1.el8.x86_64需要依赖containerd.io 1.6.4及以上版本。

解决思路和实践

既然是缺少containerd.io依赖包,直接安装对应的依赖包即可。
打开网站https://mirrors.aliyun.com/docker-ce/linux/centos/8.5/x86_64/stable/Packages/, 选择最新的版本进行复制URL,然后执行下面的命令:

sudo yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/8.5/x86_64/stable/Packages/containerd.io-1.6.9-3.1.el8.x86_64.rpm

继续报错:

Error: 
 Problem: problem with installed package podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64
  - package podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.6.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.6.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - conflicting requests ## 包冲突了
  - package runc-1.0.0-66.rc10.module_el8.5.0+1004+c00a74f5.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 is filtered out by modular filtering
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

报错信息:在安装containerd.io时需要安装podman,而podman需要依赖runc 1.0.0-57及以上版本,但是系统已经存在了runc 1.0.2-1,两个版本冲突了。
直接卸载掉当前存在的runc版本即可。

# 先查看当前已经存在runc版本信息
sudo yum list runc
Last metadata expiration check: 0:03:22 ago on Sun 06 Aug 2023 11:45:40 AM CST.
Installed Packages
runc.x86_64                                                   1.0.2-1.module_el8.5.0+911+f19012f9                                                   @AppStream

# 卸载掉当前已经存在runc版本
sudo yum remove runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64

至此,安装containerd.io的冲突报错问题解决,重新开始安装即可。

# 安装containerd.io
sudo yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/8.5/x86_64/stable/Packages/containerd.io-1.6.9-3.1.el8.x86_64.rpm

# 安装docker
sudo yum install docker-ce -y

# 查看docker版本
docker version

# 安装docker compose
# 先升级pip3
sudo pip3 install --upgrade pip
# 或者指定镜像源
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

# 在这一步可能会遇到下载超时的情况,反复多执行几次,直到安装成功
sudo pip3 install docker-compose
# 或者指定镜像源
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose

# 查看docker compose版本
docker-compose version

【参考】
centos8 安装 docker 全步骤
Centos8安装最新稳定版Docker-ce出现containerd.io >= 1.2.2-3
docker(centos8)安装遇到的坑
CentOS8 安装 docker 和 docker-compose