RHEL 上的 Docker CE - 要求:container-selinux >= 2.9

Posted

技术标签:

【中文标题】RHEL 上的 Docker CE - 要求:container-selinux >= 2.9【英文标题】:Docker CE on RHEL - Requires: container-selinux >= 2.9 【发布时间】:2017-12-29 13:57:06 【问题描述】:

我正在尝试使用此link 在RHEL 上安装Docker CE。这是我的 RHEL 版本:

Red Hat Enterprise Linux Server release 7.3 (Maipo)

当我执行这个时:

sudo yum -y install docker-ce

我收到此错误:

Error: Package: docker-ce-17.06.0.ce-1.el7.centos.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2.9
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

我尝试使用 --skip-brokenrpm -Va --nofiles --nodigest 但再次遇到相同的错误。请告诉我如何解决此问题并在 RHEL 7.3 中安装 Docker CE。

【问题讨论】:

如果您只想让它工作(知道您使用的是不受支持的 rpm),请查看 ***.com/a/45033117/3370010 【参考方案1】:

container-selinux 包可从rhel-7-server-extras-rpms 频道获得。您可以使用以下方式启用它:

subscription-manager repos --enable=rhel-7-server-extras-rpms

软件包的源代码也已导出到git.centos.org,因此您可以使用mock 自己重建它:

https://git.centos.org/summary/rpms!container-selinux.git

(这不是编程问题,因此您应该使用其他网站之一。)

【讨论】:

我没有有效订阅。有什么替代方法吗? 您可以使用mock 从sources on git.centos.org 构建包。 mock 本身在 EPEL 中,但它可能依赖于您尚未安装的 Red Hat Enterprise Linux 中的一些软件包,因此您需要先跨级到 CentOS。 我收到Error: 'rhel-7-server-extras-rpms' does not match a valid repository ID. @prayagupd 这看起来像是一个无关的订阅管理问题。您应该打开一个支持案例。 @prayagupd 回复太晚了,但这是因为您可能没有使用 RHEL 服务器版本,您可能正在使用工作站。【参考方案2】:

从 Centos 存储库安装 Selinux 对我有用: 1。转至http://mirror.centos.org/centos/7/extras/x86_64/Packages/ 2。查找 container-selinux 的最新版本i.e. container-selinux-2.21-1.el7.noarch.rpm 3。在终端上运行以下命令:$ sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/**Add_current_container-selinux_package_here** 4。该命令应如下所示$ sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.21-1.el7.noarch.rpm 注意:容器版本会不断更新,因此您应该在 Centos 的存储库中查找最新版本

【讨论】:

有什么简单的方法可以编写脚本以便它自己找到最新版本? 如果需要这种版本选择,我们为什么要有像 YUM 这样的包管理器?【参考方案3】:

安装selinux最新版本即可修复:sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm

更多版本在 http://mirror.centos.org/centos/7/extras/x86_64/Packages/

2.9 的旧版本: http://ftp.riken.jp/Linux/cern/centos/7/extras/x86_64/Packages/

【讨论】:

谢谢,这对我有用。对于未来的谷歌人来说,复制和粘贴他们上面的内容几乎肯定是行不通的,因为此时它已经过时了。转到更多版本链接并获取最新版本(复制链接地址)。【参考方案4】:

错误:包:2:container-selinux-2.74-1.el7.noarch (rhel-7-server-extras-rpms)

要求:selinux-policy >= 3.13.1-216.el7

已安装:selinux-policy-3.13.1-192.el7_5.6.noarch (@rhel-7-server-rpms)

selinux-policy = 3.13.1-192.el7_5.6

container-selinux 版本存在依赖问题

为了在 rhel 7.x 上修复此错误,我执行了以下操作

1) 百胜安装http://vault.centos.org/centos/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm

2) yum install -y yum-utils device-mapper-persistent-data lvm2

3) yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4) yum install docker-ce

现在启动 docker 服务

【讨论】:

yum install vault.centos.org/centos/7.3.1611/extras/x86_64/Packages/… 是安装 container-selinux 的唯一方法。谢谢! 重要的是要注意,在安装 docker-ce 之前,可能需要根据您的版本进行 yum 更新 failure: repodata/repomd.xml from base: [Errno 256] 没有更多镜像可以尝试。【参考方案5】:

RHEL 不支持 Docker CE。您试图绕过的任何方式都不是受支持的方式。您可以在Docker Documentation 中查看支持的平台。我建议您要么使用受支持的操作系统,要么切换到企业版。

【讨论】:

【参考方案6】:

您已经为 3.7 版本安装了 container-selinux 检查以下 docker-ce 版本是否适合您,它适合我。

sudo yum -y install docker-ce-cli.x86_64 1:19.03.5-3.el7

【讨论】:

这实际上对我有用!从字面上看,没有其他答案做到了。【参考方案7】:

前往http://mirror.centos.org/centos/7/extras/x86_64/Packages/ 并获取最新 container-selinux 软件包的链接。就我而言,链接是http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm

以 root 身份访问您的终端并运行:

yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm

之后就可以继续安装docker了:

yum 安装 docker-ce

【讨论】:

【参考方案8】:

为了解决我在 RHEL-7 上安装 docker-ce 时遇到的以下错误

Error: Package: 3:docker-ce-18.09.5-3.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2.9
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

请在安装最新版本的docker-ce之前运行以下命令

yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm

一旦上一个命令成功运行,然后使用以下命令安装 docker-ce

yum -y install docker-ce

安装完成后运行

systemctl start docker

注意:使用 root 用户运行所有这些命令

【讨论】:

请尝试mirror.centos.org/centos/7/extras/x86_64/Packages/…【参考方案9】:

要更新container-selinux,我必须先安装epel-release

添加Centos-7存储库

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装epel-release

yum install epel-release

更新container-selinux

yum install container-selinux

【讨论】:

mirrors.aliyun.com/centos/7/extras/x86_64/Packages/…: [Errno 14] HTTP 错误 404 - 未找到 移到mirrors.aliyun.com/centos/7/extras/x86_64/Packages/…【参考方案10】:

我遇到了同样的错误要求:Amazon ec2 实例 (Rhel7) 上的 container-selinux >= 2.9

我尝试通过执行添加额外的包 rmp repo sudo yum-config-manager --enable rhui-REGION-rhel-server-extras 但它有效。 按照https://installdocker.blogspot.com/ 的步骤,我能够安装 docker。

【讨论】:

【参考方案11】:

试试:

yum install http://vault.centos.org/centos/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm

它对我有用。

【讨论】:

您的回答没有添加任何新信息。其他人已经回答了这个问题 @AnkurAggarwal 当您离开与审核相关的 cmets 时,您确实应该比“这已经由其他人回答”更具体。这也不是正当理由;仅仅因为它被回答并不意味着它不允许添加另一个答案,假设它不是公然抄袭并遵循 SE 答案的一般规则。【参考方案12】:

[已解决] 一个简单的命令即可解决此问题。

yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm

【讨论】:

【参考方案13】:

REHL 官方不支持 DOCKER Ce 来修复运行以下命令的问题

wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm
sudo rpm -i container-selinux-2.107.el7.noarch.rpm

wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/slirp4netns-0.4.3-4.el7_8.x86_64.rpm



#Set up the Docker CE repository on RHEL:
sudo yum install -y yum-utils
sudo yum install -y device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
yum install docker-ce docker-ce-cli containerd.io

#Start Docker:
sudo systemctl start docker
 
#Test your Docker CE installation:
sudo docker run hello-world

【讨论】:

【参考方案14】:

2019 年 6 月更新

真是一顿狗晚餐。不幸的是,其他答案对我不起作用。

在大多数情况下,official docker instructions 用于使用存储库进行安装 DID 有效。

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

接着是:

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

但是,我不得不修改下一个命令如下(添加--nobest):

sudo yum install docker-ce --nobest

最后,检查docker客户端

docker --version
Docker version 18.09.7, build 2d0083d

另请注意,以上内容适用于 AWS 上的标准 RHEL AMI,但不适用于 Amazon Linux AMI 类型。也可能会发现引用 this github issue 有见地。

额外的好处,我发现以下附加命令很有帮助:

启动 docker 守护进程

sudo systemctl start docker.service

授予当前用户(在我的情况下为 ec2-user - 请与 whoami 核对)对 docker 组的权限。这样可以避免使用 sudo 运行所有内容。

sudo usermod -aG docker $USER

现在,以与以前相同的用户身份注销并再次登录(在我的情况下为 ec2-user)。

此时,一切都应该正常工作。检查 docker 守护进程

docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

【讨论】:

Docker 方面最近发生了一些变化。他们现在需要 container-selinux 2.74。这阻碍了我们现在在 centos7.4 中安装 docker。【参考方案15】:

在 CentOS7 上,我必须遵循第三种安装方法,get-docker.sh https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-convenience-script

【讨论】:

【参考方案16】:

解决这个问题的最佳方法是。 从http://mirror.centos.org/centos/7/extras/x86_64/Packages/下载最新的container-selinux包到需要安装docker的VM或机器中。 错误:有时它会要求从 repo 下载 red hat 订阅。 我们可以在没有订阅的情况下手动完成,如下所示 运行以下命令,这将手动安装依赖项 rpm -i container-selinux-2.107-3.el7.noarch.rpm 然后运行 ​​yum install docker-ce

谢谢 萨亚

【讨论】:

【参考方案17】:

与其他答案一样,将“额外”订阅频道添加到 CentOS 7 Spacewalk 部署也可以解决此问题。

【讨论】:

【参考方案18】:

我关注了许多链接,包括官方文档,但最终都出现了这个错误:

Requires: container-selinux >= 2.9
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

它对我有用的唯一方法如下(我猜是yum upgrade 工作):

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum upgrade docker-ce

【讨论】:

【参考方案19】:

this 链接帮助我解决了这个问题

解决方法如下: 对于centos: 试试

sudo yum install --setopt=obsoletes=0 \
>    docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
>    docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

对于瑞尔:

sudo yum install --setopt=obsoletes=0 docker-ce-17.03.3.ce-1.el7.x86_64.rpm docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review 用解释更新了答案

以上是关于RHEL 上的 Docker CE - 要求:container-selinux >= 2.9的主要内容,如果未能解决你的问题,请参考以下文章

RHEL 7 使用 CentOS 源安装 docker ce

Docker18.06.1-ce安装(RHEL7)后启动失败, 原因(xfsprogs版本过低)

Install Docker CE

centos 8 docker-ce 安装

CentOS 8 安装docker 容器

centos7 安装docker-ce ,最新版本docker