在 CentOS(以及一般的 Linux Docker 环境)中,overlay 和 devicemapper 都是 Docker 的存储驱动(storage driver),用来管理镜像和容器的文件系统层级。它们的原理、性能和适用场景有明显区别。
下面从几个关键维度对比说明。
核心组成:
核心组成:
| 对比项 | overlay / overlay2 | devicemapper |
|---|---|---|
| 所属类型 | 文件系统级 | 块设备级 |
| 内核依赖 | OverlayFS(3.10+ 支持) | Device Mapper |
| 性能 | ✅ 较好 | ❌ 相对较差 |
| 稳定性 | ✅ 高 | ⚠️ 配置复杂 |
| 空间利用 | ✅ 高效 | ⚠️ 易碎片化 |
| 配置难度 | ✅ 简单 | ❌ 复杂 |
| CentOS 默认 | ❌(旧版默认 devicemapper) | ✅(CentOS 7 早期) |
| Docker 推荐 | ✅ 强烈推荐 | ❌ 已不推荐 |
direct-lvm,否则默认 loop-lvm 性能极差devicemapperoverlay2overlay2 是默认且推荐驱动devicemapper 已基本被弃用docker info | grep -i storage
或:
docker storage driver
systemctl stop docker
备份并清空 /var/lib/docker
修改 /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}
systemctl start docker
⚠️ 注意:切换存储驱动会删除已有容器和镜像
overlay2 是现代、高效、推荐的 Docker 存储驱动;devicemapper 是 CentOS 早期的历史方案,性能差、配置复杂,已不推荐使用。
如果你愿意,我可以: