当Docker报告 "copy file range failed: no space left on device" 错误时,这通常意味着Docker的磁盘空间已满或接近满。这可能会发生在Docker正在运行的容器中复制文件时,或者在构建镜像时试图复制文件时。

要解决此问题,请执行以下步骤:

  1. 查看Docker的磁盘空间使用情况

可以使用以下命令来检查Docker的磁盘空间使用情况:

docker system df

这将显示Docker的磁盘空间使用情况概述。

  1. 清理Docker的磁盘空间

可以使用以下命令来清理Docker的磁盘空间:

docker system prune -a

这将删除未使用的容器,镜像和卷。也可以手动删除不需要的容器,镜像和卷来释放磁盘空间。

请注意,执行此命令将删除未使用的所有容器,镜像和卷,并且不能撤消此操作。如果不想删除所有未使用的内容,请使用以下命令来删除指定的未使用的内容:

docker container prune
docker image prune
docker volume prune
  1. 增加Docker的磁盘空间

如果Docker磁盘空间仍然不足,可以尝试增加Docker的磁盘空间。这取决于正在使用的操作系统和Docker安装方式。以下是在Linux上使用Docker的几种方法:

  • 在Docker安装期间使用LVM来分配更大的卷

  • 增加虚拟机磁盘的大小(如果使用的是Docker for Mac或Docker for Windows)

  • 增加物理机磁盘的大小

通过执行上述步骤之一,就能够解决 "copy file range failed: no space left on device" 错误。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐