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

我正在尝试使用此linkRHEL 上安装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。

【问题讨论】:

标签: docker unix rhel


【解决方案1】:

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

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

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

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

【讨论】:

  • 我没有有效订阅。有什么替代方法吗?
  • 您可以使用mocksources 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 用户运行所有这些命令

      【解决方案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
      
      【解决方案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
                    • 用解释更新了答案
                    猜你喜欢
                    • 2018-12-30
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2017-09-04
                    • 2020-12-17
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多