静默淡然 發表於 2025-8-28 20:44:00

CentOS 8 安装Docker 报错requires container-selinux >= 2:2.x

<h1 id="什么是-docker">什么是 Docker</h1>
<p>简单来说,Docker 是一个开源的容器化平台,它可以让你:把应用程序和它所有的依赖打包到一个“容器”中运行。</p>
<p>在传统部署中,你可能遇到这样的问题:</p>
<blockquote>
<p>“在我机器上能跑啊,怎么你那里就出错了?”</p>
</blockquote>
<p>这通常是因为你们的环境(系统版本、依赖库、配置)不一致。</p>
<p>而 Docker 可以彻底解决这个问题。</p>
<h1 id="安装-docker">安装 Docker</h1>
<p>由于 Docker 官方并未给出安装教程,本文简单写一下 Docker Engine 的安装步骤:</p>
<p><strong>安装 yum-utils</strong></p>
<blockquote>
<p>sudo yum install yum-utils -y</p>
</blockquote>
<p>添加安装源到仓库</p>
<blockquote>
<p>sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</p>
</blockquote>
<p>安装 Docker</p>
<blockquote>
<p>sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</p>
</blockquote>
<p>到目前为止都很成功,在安装的时候就开始各种环境报错。</p>
<p>报错如下:</p>
<pre><code class="language-xml">sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Updating Subscription Management repositories.
Unable to read consumer identity

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

Last metadata expiration check: 2:49:56 ago on Wed 13 Aug 2025 10:59:48 AM CST.
Error:
Problem 1: package docker-ce-3:26.1.3-1.el8.x86_64 from docker-ce-stable requires container-selinux &gt;= 2:2.74, but none of the providers can be installed
- cannot install the best candidate for the job
- package container-selinux-2:2.124.0-1.gitf958d0c.module+el8.5.0+681+c9a1951f.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.130.0-1.module+el8.5.0+770+e2f49861.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.189.0-1.module+el8.7.0+1152+ac778627.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.205.0-3.module+el8.9.0+1445+07728297.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1815+5fe7415e.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1825+623b0c20.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1843+6892ab28.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1872+2e18eb19.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1874+ce489889.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1880+8e896d1b.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1896+b18fa106.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+1948+4b5cd4a9.noarch from appstream is filtered out by modular filtering
- package container-selinux-2:2.229.0-2.module+el8.10.0+2001+6a33db9f.noarch from appstream is filtered out by modular filtering
</code></pre>
<p>这需要我们自行下载,我看网上都是国外的,但是我机器访问不到,幸好找到了国内的镜像版本,如果你缺少啥,就去这里下载:</p>
<blockquote>
<p>https://mirrors.aliyun.com</p>
</blockquote>
<p>执行以下命令即可:</p>
<blockquote>
<p>sudo yum installhttps://mirrors.aliyun.com/centos/8-stream/AppStream/aarch64/os/Packages/container-selinux-2.167.0-1.module_el8.6.0+926+8bef8ae7.noarch.rpm</p>
</blockquote>
<p>执行后,仍在报错,如下所示:</p>
<pre><code>Last metadata expiration check: 3:04:59 ago on Wed 13 Aug 2025 10:59:48 AM CST.
Error:
Problem 1: package containerd.io-1.6.32-3.1.el8.x86_64 from docker-ce-stable conflicts with runc provided by runc-1:1.1.12-6.module+el8.10.0+2001+6a33db9f.x86_64 from @System
- package containerd.io-1.6.32-3.1.el8.x86_64 from docker-ce-stable obsoletes runc provided by runc-1:1.1.12-6.module+el8.10.0+2001+6a33db9f.x86_64 from @System
- package containers-common-2:1-82.module+el8.10.0+2001+6a33db9f.x86_64 from @System requires oci-runtime, but none of the providers can be installed
- cannot install the best candidate for the job
</code></pre>
<p>我们执行强制执行命令,命令如下:</p>
<blockquote>
<p>sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</p>
</blockquote>
<p>终于成功,效果如下:</p>
<p><img alt="截图" loading="lazy"></p>
<p>太难了,期间看了stack overflow以及各种博客帖子还有问AI,一直找不到,基本都是centos 7的解决办法。不过最后总算完成了。</p>
<h1 id="启动-docker-服务">启动 Docker 服务</h1>
<p>启动 Docker 服务,并设置自启动</p>
<blockquote>
<p>sudo systemctl enable docker</p>
</blockquote>
<h1 id="验证-docker">验证 Docker</h1>
<p>通过运行 hello-world 镜像验证 Docker Engine 安装是否成功</p>
<blockquote>
<p>sudo docker run hello-world</p>
</blockquote>
<p>看到以下效果基本就可以了。如图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1423484/202508/1423484-20250828204431925-1236565609.png" alt="d8052e0cb667f26fbcfaeabaee5fec67" loading="lazy"></p>
<h1 id="小结">小结</h1>
<p>本文介绍了 Docker 的基本概念及其在解决环境不一致问题中的作用,并详细记录了在 CentOS 8 系统上安装 Docker 时遇到的各种依赖冲突与报错问题。通过使用阿里云镜像和强制安装命令,最终成功完成了安装与验证。</p><br><br>
来源:https://www.cnblogs.com/guoxiaoyu/p/19063463
頁: [1]
查看完整版本: CentOS 8 安装Docker 报错requires container-selinux >= 2:2.x