ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

『现学现忘』Docker基础 — 11、Docker安装的问题补充

2022-03-10 13:32:06  阅读:210  来源: 互联网

标签:11 centos selinux 现忘 ce el7 17.03 docker Docker


目录

通过yum安装Docker的时候,安装20版本的Docker没有出现问题,在安装17版本的时候,出现了问题。

问题复现,下面记录一下这个问题。

1、问题复现

(1)安装17.03版本Docker

执行
[root@localhost ~]# yum install docker-ce-17.03.0.ce
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce.x86_64.0.17.03.0.ce-1.el7.centos 将被 安装
--> 正在处理依赖关系 docker-ce-selinux >= 17.03.0.ce-1.el7.centos,它被软件包 docker-ce-17.03.0.ce-1.el7.centos.x86_64 需要
软件包 docker-ce-selinux 已经被 docker-ce 取代,但是取代的软件包并未满足需求
--> 解决依赖关系完成
错误:软件包:docker-ce-17.03.0.ce-1.el7.centos.x86_64 (docker-ce-stable)
          需要:docker-ce-selinux >= 17.03.0.ce-1.el7.centos
          可用: docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch (docker-ce-stable)
              docker-ce-selinux = 17.03.0.ce-1.el7.centos
          可用: docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch (docker-ce-stable)
              docker-ce-selinux = 17.03.1.ce-1.el7.centos
          可用: docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch (docker-ce-stable)
              docker-ce-selinux = 17.03.2.ce-1.el7.centos
          可用: docker-ce-selinux-17.03.3.ce-1.el7.noarch (docker-ce-stable)
              docker-ce-selinux = 17.03.3.ce-1.el7
 您可以尝试添加 --skip-broken 选项来解决该问题
 您可以尝试执行:rpm -Va --nofiles --nodigest

看到上边提示,需要一个依赖包。这个依赖包就是docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm。其实只有docker-ce17.03的前几个版本需要上边的依赖包,其他版本不需要。

(2)安装依赖包docker-ce-selinux

执行语句:

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

提示如下:

已加载插件:fastestmirror
docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm                                                         |  28 kB  00:00:00
正在检查 /var/tmp/yum-root-81R4tG/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm: docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch
/var/tmp/yum-root-81R4tG/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce-selinux.noarch.0.17.03.0.ce-1.el7.centos 将被 安装
--> 处理 docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch 与 docker-selinux 的冲突
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
--> 解决依赖关系完成
错误:docker-ce-selinux conflicts with 2:container-selinux-2.107-3.el7.noarch
 您可以尝试添加 --skip-broken 选项来解决该问题
 您可以尝试执行:rpm -Va --nofiles --nodigest

可以看到上边显示错误:docker-ce-selinux conflicts with 2:container-selinux-2.107-3.el7.noarch,说要安装的docker-ce-selinux和主机上已经安装的container-selinux-2.107-3.el7.noarch冲突了。

2、解决冲突

现在官网上给的解决卸载旧版本Docker命令如下:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

命令中并没有关于docker-ce-selinux的相关卸载。
添加过滤docker-selinuxdocker-engine-selinux的卸载就可以了。

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

执行上边语句,如下显示:

已加载插件:fastestmirror
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-engine 没有匹配
正在解决依赖关系
--> 正在检查事务
---> 软件包 container-selinux.noarch.2.2.107-3.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

====================================================================================================================================
 Package                              架构                      版本                               源                          大小
====================================================================================================================================
正在删除:
 container-selinux                    noarch                    2:2.107-3.el7                      @extras                     40 k

事务概要
====================================================================================================================================
移除  1 软件包

安装大小:40 k
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : 2:container-selinux-2.107-3.el7.noarch                                                                          1/1 
  验证中      : 2:container-selinux-2.107-3.el7.noarch                                                                          1/1 

删除:
  container-selinux.noarch 2:2.107-3.el7

完毕!

可以看到上边已经删除了有冲突的包container-selinux.noarch 2:2.107-3.el7.

3、重新安装docker-ce-selinux

继续安装docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

执行语句:

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

安装结果如下:

已安装:
  docker-ce-selinux.noarch 0:17.03.0.ce-1.el7.centos

完毕!

4、安装Docker-ce

解决完上边的依赖问题,就可以继续安装Docker-ce。
执行[root@localhost ~]# yum install docker-ce-17.03.0.ce

已安装:
  docker-ce.x86_64 0:17.03.0.ce-1.el7.centos

完毕!

到这里问题就解决了。

5、总结

这个问题会出现的原因,应该是系统之前安装过Docker,有依赖的包没有卸载干净。如果是新装的系统,应该不会出现上述问题。

以后在出现这样的情况,可以直接按此解决。

标签:11,centos,selinux,现忘,ce,el7,17.03,docker,Docker
来源: https://www.cnblogs.com/liuyuelinfighting/p/15989079.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有