无法在 RHEL 服务器中安装 docker

问题描述

在 RHEL-7 中安装 Requires: fuse-overlayfs >= 0.7 时出现 docker 错误

sudo yum install docker-ce
Loaded plugins: fastestmirror,langpacks,product-id,search-disabled-repos,subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * epel: mirrors.syringanetworks.net
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 3:20.10.2-3.el7 will be installed
--> Processing Dependency: containerd.io >= 1.4.1 for package: 3:docker-ce-20.10.2-3.el7.x86_64
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-20.10.2-3.el7.x86_64
--> Processing Dependency: docker-ce-rootless-extras for package: 3:docker-ce-20.10.2-3.el7.x86_64
--> Running transaction check
---> Package containerd.io.x86_64 0:1.4.3-3.1.el7 will be installed
---> Package docker-ce-cli.x86_64 1:20.10.2-3.el7 will be installed
---> Package docker-ce-rootless-extras.x86_64 0:20.10.2-3.el7 will be installed
--> Processing Dependency: fuse-overlayfs >= 0.7 for package: docker-ce-rootless-extras-20.10.2-3.el7.x86_64
--> Finished Dependency Resolution
Error: Package: docker-ce-rootless-extras-20.10.2-3.el7.x86_64 (docker-ce-stable)
           Requires: fuse-overlayfs >= 0.7
 You Could try using --skip-broken to work around

我已经试过了

sudo rpm -Uvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
Retrieving http://mirror.centos.org/centos/7/extras/x86_64/Packages/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
warning: /var/tmp/rpm-tmp.TZLjHD: Header V3 RSA/SHA256 Signature,key ID f4a80eb5: NOKEY
error: Failed dependencies:
    libfuse3.so.3()(64bit) is needed by fuse-overlayfs-0.7.2-6.el7_8.x86_64
    libfuse3.so.3(FUSE_3.0)(64bit) is needed by fuse-overlayfs-0.7.2-6.el7_8.x86_64
    libfuse3.so.3(FUSE_3.2)(64bit) is needed by fuse-overlayfs-0.7.2-6.el7_8.x86_64

解决方法

基于@user3495504 的回答,我们为解决该问题所做的是在文件 /etc/yum.repos.d/docker-ce.repo 的顶部添加一个条目,内容如下:

[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0

然后是安装命令:

yum -y install slirp4netns fuse-overlayfs container-selinux

成功了。

,

尝试安装 Docker 时也有这个问题。这有助于获得 fuse-overlayfs

sudo yum install fuse3-devel
wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
sudo yum localinstall fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm

我从 http://mirror.centos.org/centos/7/extras/x86_64/Packages/

获得了包 url

接下来我缺少的是 slirp4netns >= 0.4。我要尝试同样的技巧。是的,这确实有效,并且 docker 安装通过了

 sudo yum install docker-ce docker-ce-cli containerd.io
,

安装 fuse3 libs 包。这将提供缺少的依赖项。然后在进行docker install之前尝试fuse覆盖包