必须重启Docker守护进程并验证内核支持、目录结构与配置一致,否则启动失败;运行docker info | grep "Storage Driver"确认生效驱动,overlay2为推荐默认值。
直接在 /etc/docker/daemon.json 中通过 storage-driver 字段指定驱动类型即可。配置后必须重启 docker 守护进程,且需确保内核支持、文件系统兼容、实际目录结构匹配,否则启动会失败。
确认当前生效的存储驱动
运行以下命令查看真实使用的驱动:
docker info | grep "Storage Driver"
如果输出是 overlay2,说明当前已启用;若为 aufs 或 devicemapper,则需按需调整。
基础配置写法
在 daemon.json 中添加或修改这一行(注意 JSON 格式合法):
{
"storage-driver": "overlay2"
}常见可选值包括:overlay2(推荐,默认)、zfs(需 ZFS 环境)、btrfs(需 btrfs 文件系统)、devicemapper(已逐步弃用)。不建议使用 aufs(内核已移除支持)。
关键验证点
- 内核是否支持:
cat /proc/filesystems | grep overlay应返回overlay(表示已启用) -
d_type=true是否满足:findmnt -o 'fstype,opts' /var/lib/docker中需含d_type -
/var/lib/docker/下子目录应与配置一致(如设为overlay2,则存在overlay2/子目录,而非devicemapper/) - 配置未被命令行参数覆盖:
sudo dockerd --dump-config | grep -A5 "storage-driver"可查最终生效值
特殊场景处理
- 若系统使用较老内核(d_type,可临时加
storage-opts强制启用(仅限测试环境):{ "storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"] } - 切换驱动前必须清空
/var/lib/docker(原有镜像和容器将丢失),切勿在线切换。
重启生效:
sudo systemctl daemon-reload && sudo systemctl restart docker



















