问题描述: 在运行docker load 加载镜像时报错 dockerError processing tar file(exit status 1): no space left on device
问题分析: 造成以上报错的原因是因为docker加载镜像的空间不足了
解决办法:
-
第一个解决办法
- 查询到docker默认存放镜像地址为
/var/lib/docker,扩展此地址下的空间就可以解决这个问题,但是博主并没使用这个方法。
第二个解决办法
- 修改 docker root path
step 1:sudo docker info明确 Docker Root Dir: 为/var/lib/docker
step 2: 关闭 docker 服务sudo systemctl stop docker
step 3: 新建docker root 路径sudo mkdir /root/docker(一定保证此路径下有空间,可以用df -h /root看一下root路径下是否有空间,如果没有空间,找一个有空间的地方新建一个文件,并将下面shell命令中所有的/root/docker 改为新建的文件路径,很多修改不成功的都是因为此原因,因为你新建的路径下还是没有空间,肯定成功不了!!!!)
step 4: 新建 docker 配置文件sudo touch /etc/docker/daemon.json
step 5: vim写入文件vim /etc/docker/daemon.json
step 6: 博主的 docker 版本为 v17.03.2,在文件中加入json语句{"graph": "/root/docker"}问题得到了解决。网上解决办法还有当版本太低的时候,需要将上面的json语句替换为{"data-root": "/root/docker"}
step 7: 重启docker 服务sudo systemctl start docker,并 查看docker info的docker root dir 是否变为指定的root路径/root/docker
本文介绍了在运行dockerload时遇到'nospaceleftondevice'错误的解决办法。首先确认问题是由镜像存储空间不足引起,然后提供两种解决方案。第一种是直接扩展/var/lib/docker目录的空间,但博主未采用。第二种方法是修改Docker的根目录,通过停止Docker服务,创建新的DockerRootPath,编辑daemon.json文件并设置新的图形路径,最后重启Docker服务。通过这些步骤,成功解决了空间不足的问题。
1673





