安装docker engine依赖报错的本质是组件缺失或版本不匹配,需通过清理旧版本、补齐基础工具、启用内核模块、配置国内镜像源并显式指定兼容版本(如containerd.io 1.4.12配合docker ce 20.10.8)来系统解决。
安装 docker engine 时遇到依赖报错,本质是系统缺少关键组件或版本不匹配。核心思路不是“跳过依赖”,而是补全、对齐、隔离冲突源。下面按实际高频场景分步说明。
清理残留旧版本再动手
很多依赖错误其实是旧包残留导致的版本混杂。即使没装过 Docker,也建议先执行卸载命令(无害):
-
CentOS/RHEL:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine containerd.io docker-ce docker-ce-cli -
Ubuntu/Debian:
apt remove docker docker-engine docker.io containerd runc
卸载后运行 yum clean all(CentOS)或 apt clean && apt autoclean(Ubuntu),避免缓存干扰。
确保基础工具和内核支持到位
依赖链起点往往不在 Docker 包本身,而在构建环境里:
- 必须安装
yum-utils(CentOS)或apt-transport-https ca-certificates curl gnupg lsb-release(Ubuntu),否则无法添加和解析仓库 - CentOS 7 要求内核 ≥ 3.10,运行
uname -r确认;若低于 3.10,需先升级内核再继续 - 启用必要内核模块:
modprobe overlay和modprobe br_netfilter,缺失会导致后续启动失败
用国内镜像源+显式指定依赖版本
官方源慢或不可达,常引发 containerd.io not installable 或 No more mirrors to try 错误。推荐组合操作:
- 添加阿里云或清华源(以 CentOS 7 为例):
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 查看可用版本:
yum list docker-ce --showduplicates | sort -r - 安装时显式带上已知兼容的 containerd.io 版本(例如 Docker CE 20.10.8 对应 containerd.io 1.4.12):
yum install -y containerd.io-1.4.12 docker-ce-20.10.8 docker-ce-cli-20.10.8
这样可绕过 yum 自动选包时的版本错配问题。
手动下载缺失 RPM 包(针对特定失败包)
如果报错明确指出某个包下载失败(如 docker-engine-17.05.0.ce-1.el7.centos.x86_64 找不到),直接去镜像站手动获取:
- 访问
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/ - 搜索对应包名,下载到本地(如
containerd.io-1.4.12-3.1.el7.x86_64.rpm) - 用
yum localinstall xxx.rpm安装,再执行主安装命令
此法适用于个别包在默认 repo 中被移除但又必须依赖的情况。
依赖报错不是随机发生的,基本都落在源配置、版本锁定、内核模块、基础工具这四个环节。按顺序检查,通常两分钟内就能定位根因。











