docker “no space left on device”问题解决

455 阅读1分钟

1、先使用docker info查看docker的信息

docker info

可以看到docker的根路径是 /var/lib/docker

2、查看docker根路径的磁盘占用率
由上可知我们docker的磁盘占有率已经满了,需要清理

df -Th  /var/lib/docker
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs    35G   35G  796M  98% /

3、清理无效数据文件
切换到docker根路径,查找占用空间大的文件,并根据情况清理文件

cd /var/lib/docker
ll -h

4、

清理docker环境已经停止的容器

查看所有已经停止的容器

docker ps -a|grep Exited
删除所有停止的容器
docker rm $(docker ps -qf status=exited)

5、 docker 使用一段时间之后,可能堆积很多用不着的,或者编译错误的镜像,一个一个删除就很麻烦,需要一个批量删除的方法,如下:

docker rmi $(docker images | grep "none" | awk '{print $3}') 

上面这条命令,可以删除所有名字中带 “none” 关键字的镜像,即可以把所有编译错误的镜像删除。

这个 grep 后面的参数,就是筛选出名字中包含这个参数的镜像。

即可以通过这条命令,删除所有名字中包含此参数的镜像。