无法在RHEL服务器上安装Docker

31

在安装RHEL-7的docker时,我遇到了Requires: fuse-overlayfs >= 0.7的错误。

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

4个回答

110
在 @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=1
gpgkey=http://centos.org/keys/RPM-GPG-KEY-CentOS-7

安装命令如下:

yum -y install slirp4netns fuse-overlayfs container-selinux

操作成功。

[编辑]

  • 启用了gpgcheck

1
有点担心将这个CentOS软件仓库加入到我的RHEL服务器中 :) 但是它起作用了。 - chrisinmtown
1
谢谢,对我也有效!但是如果我们启用gpg检查会更好吧?gpgcheck=1 gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7对于我来说,没有必要明确地运行 yum -y install slirp4netns fuse-overlayfs container-selinux - keith ang
@keith-ang 我同意,那对我来说听起来更安全。 - Bruno Unna
2
在pgpkey=之后,我需要在centos.org前面加上"http://"。 - Sverre
airgapped 安装仍需要 libfuse3.so.3。 - Abdennour TOUMI
显示剩余2条评论

7

我在安装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

在Oracle Linux上,默认情况下不提供fuse3-devel软件包。在安装必要的Docker依赖项之前,您需要按照Bruno Unna提供的解决方案添加CentOS extras库。 - iansari

1

我在Oracle Linux 7.9上安装Docker版本20时遇到了问题。相反,安装版本19时,不存在依赖关系的问题,并且不需要从CentOS Extras存储库安装软件包。

sudo yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io docker-compose-plugin

展示所有可用版本。
yum list docker-ce --showduplicates | sort -r

-6

安装fuse3 libs包。这将提供缺失的依赖项。然后在继续进行docker安装之前尝试fuse叠加包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接