You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker run运行镜像提示no such file or directory错误解决方法

问题场景

执行Docker镜像运行命令:
docker run 7ce2964461cc
返回报错信息:

docker: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/2900f69b23f22f96e520a3c8ec8681cb092c2e52bdfbb5e261ad130de1502df4-init/merged: no such file or directory.

报错原因

该报错属于Docker overlay2存储驱动挂载镜像层失败,核心原因是对应存储层的关联目录或元数据异常,常见触发场景:

  • 宿主机异常断电、磁盘IO错误、磁盘空间占满,导致overlay2目录下的镜像层文件损坏、目录丢失
  • 手动误删/var/lib/docker路径下的文件,或是Docker服务异常退出后,挂载元数据和实际磁盘状态不一致
  • Docker数据目录所在的文件系统不兼容overlay2特性,或是内核overlay模块未正常加载
  • 旧版本Docker的overlay2驱动存在已知bug,大版本升级后存储数据格式不兼容
修复操作

按从简单到复杂的顺序操作,每一步完成后都可以尝试重新运行镜像验证:

  1. 重载Docker服务,清理失效挂载
    依次执行以下命令:
    systemctl stop docker
    umount /var/lib/docker/overlay2/*/merged 2>/dev/null
    systemctl start docker
    
  2. 清理损坏的镜像层,重新导入镜像
    如果第一步无效,先对本地构建的无备份镜像执行docker save 7ce2964461cc -o image_backup.tar做备份,再执行清理操作:
    docker rmi 7ce2964461cc
    docker system prune -af
    
    清理完成后重新拉取/导入目标镜像,再尝试运行。
  3. 检查存储驱动与底层环境兼容性
    • 执行lsmod | grep overlay确认内核overlay模块已加载,无输出则执行modprobe overlay手动加载
    • 确认Docker数据目录(默认路径/var/lib/docker)所在分区使用ext4、xfs等原生支持overlay的文件系统,不要部署在NFS、FAT32等不兼容的文件系统上
    • 检查/etc/docker/daemon.json配置,确认storage-driver字段设置为overlay2,不要和其他存储驱动的历史数据混用
  4. 全量重置Docker数据目录(大面积存储损坏时使用)
    提前备份好所有需要留存的镜像、容器数据后,执行以下命令重置:
    systemctl stop docker
    mv /var/lib/docker /var/lib/docker.bak
    systemctl start docker
    
    重置完成后重新导入镜像、恢复业务数据即可。

内容的提问来源于stack exchange,提问作者Mahdi Khezrabadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 04:06:18