Linux安装docker过程中出现版本依赖问题该如何解决


安装docker的官方步骤,参考docker的官方网站:https://docs.docker.com/engine/install/centos/。

为了保证docker的安装过程顺利,首先要注意部署docker的环境,小编的环境Red Hat Enterprise Linux Server release 7.5,内核:3.10.0-862.el7.x86_64,安装docker对系统环境要求:centos7.5 64位 内核版本高于3.10,centos6.5 64位 内核版本高于2.6.32,因为内核包含了运行Docker的一些特定修改。

这里简单描述安装步骤,详细步骤请参考官方网站:

  • 卸载自带的包:
1 yum remove docker \
2                   docker-client \
3                   docker-client-latest \
4                   docker-common \
5                   docker-latest \
6                   docker-latest-logrotate \
7                   docker-logrotate \
8                   docker-engine
  • 安装依赖包:
1 yum install -y yum-utils
  •  设置镜像:
1 yum-config-manager \
2     --add-repo \
3     https://download.docker.com/linux/centos/docker-ce.repo
  • 执行安装命令,安装docker:
1 yum install docker-ce docker-ce-cli containerd.io
  • 启动docker:
1 systemctl start docker
  • 输入docker version来测试docker是否成功安装:

 如果看到上述的client和server,说明两者均起成功,如果docker只启动了client,通过输入service docker start或者systemctl restart docker来开启server,之后再次输入docker version来验证;

 

完成之后可以用docker测试helloworld,步骤如下:

  • 输入docker pull hello-world来拉取hello-world镜像

 输入docker run hello-world运行,出现下图所示内容,说明hello-world运行成功:

 

 

小编在安装的过程中出现版本依赖问题,研究了好久才终于彻底解决。

下面是执行安装命令的时候出现的问题:

 1 [root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io  2 Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager  3 This system is not registered with an entitlement server. You can use subscription-manager to register.  4 Resolving Dependencies  5 --> Running transaction check  6 ---> Package containerd.io.x86_64 0:1.4.6-3.1.el7 will be installed  7 --> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.4.6-3.1.el7.x86_64  8 ---> Package docker-ce.x86_64 3:20.10.7-3.el7 will be installed  9 --> Processing Dependency: container-selinux >= 2:2.74 for package: 3:docker-ce-20.10.7-3.el7.x86_64 10 --> Processing Dependency: docker-ce-rootless-extras for package: 3:docker-ce-20.10.7-3.el7.x86_64 11 ---> Package docker-ce-cli.x86_64 1:20.10.7-3.el7 will be installed 12 --> Processing Dependency: docker-scan-plugin(x86-64) for package: 1:docker-ce-cli-20.10.7-3.el7.x86_64 13 --> Running transaction check 14 ---> Package containerd.io.x86_64 0:1.4.6-3.1.el7 will be installed 15 --> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.4.6-3.1.el7.x86_64 16 ---> Package docker-ce.x86_64 3:20.10.7-3.el7 will be installed 17 --> Processing Dependency: container-selinux >= 2:2.74 for package: 3:docker-ce-20.10.7-3.el7.x86_64 18 ---> Package docker-ce-rootless-extras.x86_64 0:20.10.7-3.el7 will be installed 19 --> Processing Dependency: fuse-overlayfs >= 0.7 for package: docker-ce-rootless-extras-20.10.7-3.el7.x86_64 20 --> Processing Dependency: slirp4netns >= 0.4 for package: docker-ce-rootless-extras-20.10.7-3.el7.x86_64 21 ---> Package docker-scan-plugin.x86_64 0:0.8.0-3.el7 will be installed 22 --> Finished Dependency Resolution 23 Error: Package: docker-ce-rootless-extras-20.10.7-3.el7.x86_64 (docker-ce-stable) 24            Requires: fuse-overlayfs >= 0.7
25 Error: Package: docker-ce-rootless-extras-20.10.7-3.el7.x86_64 (docker-ce-stable) 26            Requires: slirp4netns >= 0.4
27 Error: Package: 3:docker-ce-20.10.7-3.el7.x86_64 (docker-ce-stable) 28            Requires: container-selinux >= 2:2.74
29            Installed: 2:container-selinux-2.68-1.el7.noarch (@extras) 30                container-selinux = 2:2.68-1.el7 31            Available: 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch (extras) 32                container-selinux = 2:2.42-1.gitad8f0f7.el7 33            Available: 2:container-selinux-2.55-1.el7.noarch (extras) 34                container-selinux = 2:2.55-1.el7 35            Available: 2:container-selinux-2.66-1.el7.noarch (extras) 36                container-selinux = 2:2.66-1.el7 37 Error: Package: containerd.io-1.4.6-3.1.el7.x86_64 (docker-ce-stable) 38            Requires: container-selinux >= 2:2.74
39            Installed: 2:container-selinux-2.68-1.el7.noarch (@extras) 40                container-selinux = 2:2.68-1.el7 41            Available: 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch (extras) 42                container-selinux = 2:2.42-1.gitad8f0f7.el7 43            Available: 2:container-selinux-2.55-1.el7.noarch (extras) 44                container-selinux = 2:2.55-1.el7 45            Available: 2:container-selinux-2.66-1.el7.noarch (extras) 46                container-selinux = 2:2.66-1.el7 47  You could try using --skip-broken to work around the problem 48  You could try running: rpm -Va --nofiles --nodigest

即便是重新安装 yum reinstall container-selinux ,还是会出现上面的那种提示,其实真正的原因是所配置的yum仓库的软件包不是最新的,所以解决办法就是更换/etc/yum.repos.d/CentOS7-Base-163.repo。小编这里提供下面两种:

1、中科大(参考地址:http://mirrors.ustc.edu.cn/help/centos.html#)
 1 # CentOS-Base.repo  2 #  3 # The mirror system uses the connecting IP address of the client and the  4 # update status of each mirror to pick mirrors that are updated to and  5 # geographically close to the client.  You should use this for CentOS updates  6 # unless you are manually picking other mirrors.  7 #  8 # If the mirrorlist= does not work for you, as a fall back you can try the  9 # remarked out baseurl= line instead. 10 # 11 # 12 [base] 13 name=CentOS-$releasever - Base 14 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
15 baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/
16 gpgcheck=1
17 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
18 #released updates 19 [updates] 20 name=CentOS-$releasever - Updates 21 # mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
22 baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/updates/$basearch/
23 gpgcheck=1
24 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
25 #additional packages that may be useful 26 [extras] 27 name=CentOS-$releasever - Extras 28 # mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
29 baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/
30 gpgcheck=1
31 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
32 #additional packages that extend functionality of existing packages 33 [centosplus] 34 name=CentOS-$releasever - Plus 35 # mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
36 baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
37 gpgcheck=1
38 enabled=0
39 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
2、清华源
 1 # CentOS-Base.repo  2 #  3 # The mirror system uses the connecting IP address of the client and the  4 # update status of each mirror to pick mirrors that are updated to and  5 # geographically close to the client.  You should use this for CentOS updates  6 # unless you are manually picking other mirrors.  7 #  8 # If the mirrorlist= does not work for you, as a fall back you can try the  9 # remarked out baseurl= line instead. 10 # 11 # 12 [base] 13 name=CentOS-$releasever - Base 14 baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
15 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
16 gpgcheck=1
17 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
18 #released updates 19 [updates] 20 name=CentOS-$releasever - Updates 21 baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
22 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
23 gpgcheck=1
24 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
25 #additional packages that may be useful 26 [extras] 27 name=CentOS-$releasever - Extras 28 baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
29 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
30 gpgcheck=1
31 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
32 #additional packages that extend functionality of existing packages 33 [centosplus] 34 name=CentOS-$releasever - Plus 35 baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
36 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
37 gpgcheck=1
38 enabled=0
39 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
修改完成后更新yum源:
1 yum clean all
2 rm -rf  /var/cache/yum/
3 yum makecache

这时候,再次执行安装docker的命令,终于安装成功了!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM