本页目录
装 Docker,照着官方命令走却卡在 containerd.io?这篇保留我在 CentOS 8 初期解决依赖冲突的完整顺序:配置仓库、单独处理运行时包、安装 Engine 与 CLI,最后启动服务并检查权限。
1. 确认环境,配置 Docker 仓库
我使用的是一台新装的 CentOS 8 VPS,没有旧 Docker 包需要清理。排查安装错误前,先确认系统和架构:
cat /etc/os-release
uname -m
下面是原环境的仓库准备命令,安装所需工具后再添加 Docker 源:
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
仓库设置成功不代表所有包都兼容,接下来仍要看完整依赖求解结果。旧包残留、仓库混用或 CPU 架构不一致,都可能让安装报错。
2. 处理 containerd.io 冲突,再装 CE 与 CLI
安装命令包含三个包:
sudo yum install docker-ce docker-ce-cli containerd.io
原环境在这一步提示候选 Docker 包的 containerd.io 依赖无法满足。我的处理是先到 Docker 官方包仓库找运行时包,单独安装,然后再安装剩下两个组件。
| 组件 | 用途 |
|---|---|
docker-ce | Docker Engine |
docker-ce-cli | Docker 命令行客户端 |
containerd.io | 容器运行时组件 |
这次使用了 CentOS 7 仓库中的 containerd.io-1.2.6-3.3.el7.x86_64.rpm。它只是那套旧环境里采用的包,不是当前最新版;更高版本号也不自动等于满足所有依赖和系统兼容条件。
# 仅记录旧环境的包来源,不用于新的生产安装
sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
sudo yum install docker-ce docker-ce-cli
在旧环境复现时,也应先核对包签名、依赖及仓库配置,保留回退条件。不要从不明镜像站随便下载一个同名 RPM 强行装上。
3. 启动服务,检查版本和访问权限
安装完成后启动服务,再确认 Engine 状态:
sudo systemctl start docker
sudo systemctl enable docker.service
sudo systemctl status docker
docker --version
sudo docker images
客户端能显示版本号,不代表守护进程已经启动;用 sudo docker images 等命令确认客户端能访问服务。
我在普通用户下查询镜像时遇到权限错误,加入 docker 组并重新登录后才正常使用。这个组拥有接近主机 root 的控制能力,是否添加要先看 Docker 的权限说明。仅为安装验证,用 sudo 就可以,不需要为了少敲一个词扩大所有用户的权限。
4. 补充:容器启动的 SELinux 报错
除了安装依赖,旧环境还可能在创建容器时遇到 /proc/self/attr/keycreate: permission denied 一类运行时错误。这里要区分 Engine 安装失败与容器启动失败,两者不是同一个检查入口。
先查看 container-selinux、containerd、runc、内核版本及 SELinux 审计记录,核对是否是对应版本的已知问题。描述中的 container-selinux 2.124.0 是历史参考,不能当成所有同类报错的通用修复版本。
不建议通过关闭 SELinux 或放宽策略来换取“容器终于启动了”。如果需要修改策略,应依据实际拒绝记录评估最小变更,而不是照抄一条关闭安全机制的命令。
把报错拆到正确的层
这次安装最值得复用的是检查顺序:系统与仓库、包依赖、服务状态、用户权限,最后才是容器运行时和安全策略。包装上了但容器没起来,继续重装同一个包往往只会绕圈。
如今新项目应使用受支持系统;想了解另一类容器宿主机,也可以看Google Container-Optimized OS。欢迎分享你遇到的安装问题,注明系统、架构和完整脱敏报错,别只贴最后一行。感谢阅读,希望这份旧环境记录能帮你更快判断问题在哪一层。
后续更新
**CentOS 官方生命周期说明显示,CentOS Linux 8 已于 2021 年 12 月 31 日停止维护。不要把本文记录的旧环境与跨版本 RPM 修复用于新部署;新环境应选择受维护的系统,并按 Docker 当前安装文档核对支持平台和安装步骤。

