Docker加载镜像时出现 “no space left on device” 错误的解决方法

 更新时间:2026年03月27日 09:31:41   作者:Asia-Lee  
在 Docker 使用过程中,“no space left on device” 错误是常见的磁盘空间不足问题,本文将结合实战操作,详细介绍该问题的排查与解决步骤,帮助开发者快速定位并修复问题,需要的朋友可以参考下
  • 在 Docker 使用过程中,“no space left on device” 错误是常见的磁盘空间不足问题。本文将结合实战操作,详细介绍该问题的排查与解决步骤,帮助开发者快速定位并修复问题。
  • 当 Docker 镜像加载失败并提示该错误时,通常是由于 Docker 数据目录(默认/var/lib/docker)所在磁盘空间或 inode 耗尽导致。

一、磁盘空间与 inode 使用情况检查

1. 检查磁盘空间占用

  • 通过df命令查看 Docker 数据目录的磁盘使用情况:
df -h /var/lib/docker
  • 关键指标:关注Use%列,若接近 100% 则说明空间不足
  • 典型场景:镜像文件过大、历史镜像堆积导致空间占满

2. 检查 inode 使用情况

  • inode 是 Linux 存储文件元数据的索引节点,即使磁盘空间未耗尽,inode 耗尽也会导致写入失败:
df -i /var/lib/docker
  • 判断标准:若IUse%接近 100%,需清理小文件释放 inode

二、Docker 无用资源清理

1. 自动清理未使用资源

  • 通过 Docker 内置的清理命令释放空间:
# 交互式清理,会提示确认删除停止的容器、悬空镜像、未使用网络
docker system prune
# 强制全量清理(生产环境谨慎)
docker system prune -a --volumes
  • -a:删除所有未使用的镜像(包括 dangling 和 非 dangling)
  • --volumes:同时删除未使用的 Docker 卷

2. 手动精准清理

如果自动清理不彻底,手动删除特定镜像或容器:

# 列出所有镜像
docker images -a
# 删除指定镜像
docker rmi <镜像ID>
# 列出并删除已停止的容器
docker ps -a
docker rm <容器ID>

三、清理 Docker 临时文件

  • 直接删除Docker临时目录(确保操作安全)
# 警告:操作前停止Docker服务
systemctl stop docker
rm -rf /var/lib/docker/tmp/*
systemctl start docker

四、迁移 Docker 存储路径(长期方案)

  • 当默认分区空间不足时,可将数据目录迁移至更大分区
# 停止服务
systemctl stop docker
# 创建新存储路径
mkdir /data/docker  # 替换为实际路径
# 修改Docker配置
echo '{ "data-root": "/data/docker" }' > /etc/docker/daemon.json
# 迁移现有数据(可选)
rsync -aqxP /var/lib/docker/ /data/docker  # 保留权限和链接
# 重启docker
systemctl start docker
  • 验证方法:执行docker info查看 “Docker Root Dir” 是否变更

五、扩展磁盘空间(高级操作)

若分区容量不足:

  • 使用 lvextend(LVM)或 resize2fs 调整分区大小。
  • 挂载新磁盘到 /var/lib/docker

挂载新磁盘

新增磁盘分区

fdisk /dev/sdb  # 创建新分区并格式化为ext4/xfs
  • 挂载到目标目录
mount /dev/sdb1 /var/lib/docker
  • 设置开机自动挂载
echo "/dev/sdb1 /var/lib/docker ext4 defaults 0 0" >> /etc/fstab

六、实战操作示例

# 检查空间
df -h /var/lib/docker

# 清理Docker
docker system prune -a --volumes

# 重新加载镜像
docker load -i image-search-v1.tar

七、注意事项

  • 数据备份:清理或迁移前务必备份重要镜像和容器数据
  • 路径替换:所有涉及/新存储路径的操作需替换为实际路径
  • 生产环境:执行prune -a等危险命令前需评估业务影响
    通过以上步骤,可系统性解决 Docker 镜像加载时的磁盘空间不足问题。建议定期执行docker system prune进行日常维护,避免问题复发。

以上就是Docker加载镜像时出现 “no space left on device” 错误的解决方法的详细内容,更多关于Docker加载镜像no space left on device的资料请关注脚本之家其它相关文章!

相关文章

  • docker初始化安装时的WSL两个问题详解

    docker初始化安装时的WSL两个问题详解

    这篇文章主要给大家介绍了关于docker初始化安装时的WSL两个问题,文中通过代码以及图文介绍的非常详细,对初学者学习Docker,非常有帮助,需要的朋友可以参考下
    2023-12-12
  • Docker Compose从安装到使用详细过程

    Docker Compose从安装到使用详细过程

    Docker Compose是Docker官方提供的一个工具,用于定义和运行多容器 Docker应用程序,本文给大家介绍Docker Compose从安装到使用详细过程,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Docker+DockerCompose封装web应用的方法步骤

    Docker+DockerCompose封装web应用的方法步骤

    这篇文章会介绍如何将后端、前端和网关通通使用 Docker 容器进行运行,并最终使用 DockerCompose 进行容器编排,感兴趣的可以了解一下
    2021-08-08
  • 如何使用Docker部署Go Web应用的实现

    如何使用Docker部署Go Web应用的实现

    这篇文章主要介绍了如何使用Docker部署Go Web应用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • docker-compose安装Jenkins的实践笔记

    docker-compose安装Jenkins的实践笔记

    jenkins是一个比较强大的自动构建工具, Jenkins是开源CI&CD软件领导者,提供超过1000个插件来支持构建、部署、自动化,本文给大家介绍docker-compose安装Jenkins的实践笔记,感兴趣的朋友一起看看吧
    2021-09-09
  • Docker 拉取镜像超时(亲测 3 个有效镜像源 + 避坑指南)

    Docker 拉取镜像超时(亲测 3 个有效镜像源 + 避坑指南)

    Docker 默认镜像源在国外,国内访问经常抽风,常规操作应该是换国内镜像源,本文就来介绍一下三个国内稳定源,具有一定的参考价值,感兴趣的可以了解一下
    2025-08-08
  • 阿里云部署Docker私有镜像仓库的实现步骤

    阿里云部署Docker私有镜像仓库的实现步骤

    本文主要介绍了阿里云部署Docker私有镜像仓库的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Docker部署rabbitmq遇到的两个问题

    Docker部署rabbitmq遇到的两个问题

    当使用docker部署rabbitmq时遇到两个问题,访问交换机时报错,另一种是访问channel时报错,本文给大家分享解决方案,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • Docker镜像上传到阿里云的步骤详解

    Docker镜像上传到阿里云的步骤详解

    本篇文章主要介绍了Docker镜像上传到阿里云的步骤详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Dockerfile 部署java web的环境详解

    Dockerfile 部署java web的环境详解

    这篇文章主要介绍了Dockerfile 构建java web 环境详解的相关资料,这里对Dockerfile 进行基本介绍,并说明如何构建java web环境进行详解,需要的朋友可以参考下
    2016-12-12

最新评论