Docker Engine运行需验证三类依赖:内核模块(overlay、br_netfilter)、系统工具(如curl、ca-certificates等)、containerd运行时;通过lsmod、dpkg/rpm、systemctl及docker info交叉确认其就绪状态。
检测 docker engine 运行所需的依赖项,关键不是“查清单”,而是验证底层支撑是否就绪。docker engine 本身不直接暴露所有依赖项,但它的启动和运行会明确依赖内核模块、系统工具、运行时组件三类基础要素。以下从实际可操作角度分步说明。
检查内核模块是否已加载
Docker 依赖 overlay 和 br_netfilter 内核模块提供存储驱动和网络桥接能力。缺失会导致服务启动失败或容器无法联网。
- 运行
lsmod | grep -E 'overlay|br_netfilter',确认两模块均在输出中 - 若无输出,手动加载:
sudo modprobe overlay && sudo modprobe br_netfilter - 为确保重启后仍生效,写入配置:
echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules
确认必要系统工具是否安装
Engine 安装和运行阶段需要基础工具链支持,尤其在首次拉取镜像、解析仓库元数据时。
- CentOS/RHEL:检查
yum-utils、device-mapper-persistent-data、lvm2是否存在(rpm -q yum-utils device-mapper-persistent-data lvm2) - Ubuntu/Debian:确认
apt-transport-https、ca-certificates、curl、gnupg、lsb-release已安装(dpkg -l apt-transport-https ca-certificates curl gnupg lsb-release) - 缺失任一工具,都可能引发 “Failed to fetch” 或 “No such file or directory” 类报错
验证 containerd 运行时状态
Docker Engine 自 20.10 起默认使用 containerd 作为底层运行时。它不是可选依赖,而是强制组件;Engine 启动失败常因 containerd 未运行或版本不匹配。
- 检查服务状态:
sudo systemctl status containerd,应显示 active (running) - 查看版本兼容性:
containerd --version与当前 Docker CE 版本需匹配(例如 Docker CE 20.10.8 要求 containerd.io ≥ 1.4.12) - 若 containerd 未启用,执行:
sudo systemctl enable --now containerd
用 docker info 快速交叉验证依赖健康度
docker info 是最高效的综合检测命令,它会主动探测并报告依赖项的可用性。
- 运行
sudo docker info(非 root 用户需先加入 docker 组) - 重点关注以下字段:
-
Storage Driver:若显示
overlay2且无警告,说明内核模块和文件系统支持正常 - Runtime 和 containerd 版本信息:确认运行时已连接且版本合理
-
Plugins > Network:列出
bridge、host等插件,表示网络模块加载成功 - 若某项显示
NOT AVAILABLE或报错,对应依赖即为故障点
-
Storage Driver:若显示


















