yum install -y docker-ce报错软件包docker-ce-3:20.10.21-3.el8.x86_64 需要 containerd.io >= 1.4.1但没有提供者可以被安装

本文介绍了解决在安装Docker CE过程中遇到的containerd.io版本依赖问题及与其他软件包如runc和buildah的冲突问题的方法。通过使用特定选项重新安装Docker CE解决了依赖问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:软件包 docker-ce-3:20.10.21-3.el8.x86_64 需要 containerd.io >= 1.4.1,但没有提供者可以被安装

[root@master ~]# yum install -y docker-ce

Docker CE Stable - x86_64                                       74 kB/s |  31 kB     00:00   

错误:

 问题: 软件包 docker-ce-3:20.10.21-3.el8.x86_64 需要 containerd.io >= 1.4.1,但没有提供者可以被安装

  - 软件包 containerd.io-1.4.10-3.1.el8.x86_64 与 runc(由 runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64 提供)冲突

  - 软件包 containerd.io-1.4.10-3.1.el8.x86_64 取代了 runc(由 runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64 提供)

  - 安装的软件包的问题 buildah-1.22.3-2.module_el8.5.0+911+f19012f9.x86_64

  - 软件包 buildah-1.22.3-2.module_el8.5.0+911+f19012f9.x86_64 需要 runc >= 1.0.0-26,但没有提供者可以被安装

  - 无法为该任务安装最佳候选

  - 软件包 runc-1.0.0-56.rc5.dev.git2abd837.module_el8.3.0+569+1bada2e4.x86_64 被模块过滤过滤掉

  - 软件包 runc-1.0.0-66.rc10.module_el8.5.0+1004+c00a74f5.x86_64 被模块过滤过滤掉

  - 软件包 runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 被模块过滤过滤掉

(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)

解决:

运行此命令

[root@master ~]# yum install -y docker-ce --allowerasing

上次元数据过期检查:0:06:22 前,执行于 2022年12月12日 星期一 18时01分58秒。

依赖关系解决。

===============================================================================================

 软件包                    架构   版本                                  仓库              大小

===============================================================================================

安装:

 docker-ce                 x86_64 3:20.10.21-3.el8                      docker-ce-stable  21 M

升级:

 containerd.io             x86_64 1.6.12-3.1.el8                        docker-ce-stable  33 M

安装依赖关系:

 docker-ce-cli             x86_64 1:20.10.21-3.el8                      docker-ce-stable  30 M

 docker-ce-rootless-extras x86_64 20.10.21-3.el8                        docker-ce-stable 4.6 M

 libcgroup                 x86_64 0.41-19.el8                           BaseOS            70 k

安装弱的依赖:

 docker-scan-plugin        x86_64 0.21.0-3.el8                          docker-ce-stable 3.8 M

移除依赖的软件包:

 buildah                   x86_64 1.22.3-2.module_el8.5.0+911+f19012f9  @AppStream        28 M

 cockpit-podman            noarch 33-1.module_el8.5.0+890+6b136101      @AppStream       438 k

 containers-common         noarch 2:1-2.module_el8.5.0+890+6b136101     @AppStream       236 k

 podman                    x86_64 3.3.1-9.module_el8.5.0+988+b1f0b741   @AppStream        48 M

 podman-catatonit          x86_64 3.3.1-9.module_el8.5.0+988+b1f0b741   @AppStream       760 k

 

<think>好的,我需要帮助用户通过yum正确安装Docker及其相关组件。首先,我应该回顾用户提供的引用内容,特别是引用[1]和引用[2],因为它们直接涉及安装和卸载步骤。 首先,用户可能已经安装了旧版本的Docker,根据引用[2],必须先卸载旧版本。步骤包括停止Docker服务,用yum remove卸载相关软件包,并删除残留文件。所以,我应该建议用户先执行这些卸载步骤,确保系统干净。 接下来,安装新版本。引用[1]给出了两种安装方式:安装特定版本或最新版本。用户的问题中没有指定版本,所以应该默认推荐安装最新版本。命令是sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin。需要确保用户正确执行这条命令。 另外,引用[4]提到安装时可能出现公钥错误。这可能是因为缺少GPG密钥。解决方法应该是导入Docker的官方GPG密钥,或者在yum命令中添加--nogpgcheck选项。不过,推荐先导入密钥,因为禁用GPG检查可能有安全风险。因此,步骤中需要包括添加Docker仓库和导入密钥的步骤,这可能用户之前没做导致错误。 引用[3]提到安装docker-compose,但用户的问题中已经包含docker-compose-plugin,所以可能需要确认是否需要额外的步骤,但根据引用[1],安装docker-compose-plugin已经通过yum完成,所以可能不需要单独安装。 最后,安装完成后,启动并启用Docker服务,以及验证安装是否成功,这些步骤也是必要的。用户可能需要知道如何测试Docker是否正常工作。 需要确保所有步骤顺序正确:卸载旧版本 -> 安装依赖 -> 添加仓库 -> 安装 -> 启动服务 -> 验证。 可能遗漏的步骤是添加Dockeryum仓库,因为默认的CentOS仓库可能不包含Docker CE。因此,用户需要先设置Docker的官方仓库,这涉及到安装yum-utils包,添加仓库,并更新yum缓存。这些步骤在引用中没有提到,但根据Docker官方文档,这是必须的,否则用户可能找不到docker-ce等包。 综上,正确的步骤应该是: 1. 卸载旧版本Docker(引用[2]) 2. 安装必要依赖包(yum-utils等) 3. 添加Dockeryum仓库 4. 安装所需软件包(引用[1]) 5. 处理可能的GPG错误(引用[4]) 6. 启动并启用服务 7. 验证安装 需要将这些步骤详细写出,并注意可能的错误处理,比如公钥问题。</think>以下是通过yum命令安装Docker及相关组件的分步指南: ### 一、卸载旧版本(必须操作) 1. 停止Docker服务 ```bash sudo systemctl stop docker ``` 2. 卸载旧版本组件 ```bash sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-engine docker-client docker-common ``` 3. 清理残留文件 ```bash sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd ``` 此步骤确保旧版本完全清除[^2] ### 二、安装前置依赖 1. 安装基础工具 ```bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 2. 添加Docker官方仓库 ```bash sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ``` 3. 更新yum缓存 ```bash sudo yum makecache fast ``` ### 三、安装新版本组件 1. 安装最新版(推荐) ```bash sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` 或安装指定版本: ```bash sudo yum install docker-ce-23.0.3-1 docker-ce-cli-23.0.3-1 containerd.io-1.6.22-3.1.el7 docker-buildx-plugin-0.10.5-1.el7 docker-compose-plugin-2.17.3-1.el7 ``` [^1] ### 四、处理GPG错误 若出现`Public key for XXXXXXX.rpm is not installed`错误: ```bash sudo rpm --import https://download.docker.com/linux/centos/gpg ``` 然后重试安装命令[^4] ### 五、启动服务 ```bash sudo systemctl start docker sudo systemctl enable docker ``` ### 六、验证安装 ```bash sudo docker run hello-world ``` 成功输出包含`Hello from Docker!`即表示安装完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值