overlay2是docker当前推荐的存储驱动,需linux内核≥4.0(rhel/centos≥3.10.0-514),支持ext4或ftype=1的xfs;切换存储驱动须停用docker、清空/var/lib/docker并修改daemon.json,否则原有镜像和容器将不可用。

直接切换需要停用 Docker 服务并修改配置,运行中的 Docker 无法动态更换存储驱动。overlay2 和 aufs 的切换本质是替换底层联合文件系统实现,涉及数据目录结构差异,必须清理旧数据后重启生效。
确认当前驱动类型
执行命令查看当前使用的存储驱动:
-
docker info | grep "Storage Driver"—— 输出类似Storage Driver: overlay2或Storage Driver: aufs - 同时检查内核支持:aufs 需加载
aufs模块(lsmod | grep aufs),overlay2 要求内核 ≥4.0 且启用overlay模块(lsmod | grep overlay)
从 overlay2 切换到 aufs
适用于老旧系统或特定兼容需求,但需注意 aufs 在多数新版发行版中已弃用。
- 停止 Docker:
sudo systemctl stop docker - 备份
/var/lib/docker(关键!所有镜像、容器、卷将丢失) - 清空旧数据:
sudo rm -rf /var/lib/docker(aufs 与 overlay2 目录结构不兼容) - 编辑
/etc/docker/daemon.json,写入:{"storage-driver": "aufs"} - 启动服务:
sudo systemctl start docker - 验证:
docker info | grep "Storage Driver"应显示aufs
从 aufs 切换到 overlay2
这是推荐方向,性能更好、维护更活跃,也是 Docker 官方默认驱动。
- 停用服务:
sudo systemctl stop docker - 备份原有数据(尤其生产环境)
- 删除 aufs 数据目录:
sudo rm -rf /var/lib/docker/aufs - 配置文件设为 overlay2:
{"storage-driver": "overlay2"} - 重启:
sudo systemctl start docker - 检查输出是否为
overlay2,并观察/var/lib/docker/overlay2/是否生成新目录
注意事项与常见问题
切换不是无损操作,务必提前评估影响。
- 所有本地镜像、容器、构建缓存、未导出的卷都会丢失——只能通过
docker save/docker load或备份/var/lib/docker归档迁移 - CentOS 7 默认内核(3.10)需升级或打补丁才支持 overlay2;Ubuntu 16.04+、Debian 10+、RHEL 8+ 原生支持
- 若配置后启动失败,检查日志:
journalctl -u docker --since "1 hour ago",常见错误包括模块未加载、权限不足或 JSON 格式错误 - 不建议在生产集群中直接切换;应先在测试环境验证应用行为和 I/O 表现











