使用df -i
查看inode占用率
[root@PonyCool-rancher ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 232525 320 232205 1% /dev
tmpfs 235252 7 235245 1% /dev/shm
tmpfs 235252 459 234793 1% /run
tmpfs 235252 16 235236 1% /sys/fs/cgroup
/dev/vda1 3932160 3932160 0 100% /
使用for i in /*; do echo $i;find $i | wc -l; done
逐级查找包含大量文件的文件夹(找到之后 先确定这个文件夹是否可以删除!!!!!!! 如果可以的话删掉他 就可以了)
删除命令:find 文件夹路径 -type f |xargs rm -rf
我这里找到是Docker的volumes占用了大量的Inode,使用docker system df
命令查看磁盘使用情况,类似于Linux上的df命令
如果是容器占用了空间,可以使用docker system prune
命令进行清理docker system prune
命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a
命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚吶。
我这里并不是在用的volumes占用了,经过检查是旧的容器产生的volumes文件占用了Inode
docker可能经常需要重新新建一个容器并删除旧的容器,久而久之,volumes目录便产生了非常庞大的僵尸文件(或者叫未绑定容器的目录)
如何查看有哪些僵尸目录呢?在Docker 1.9以上的版本中,官方提供了这个命令:
docker volume ls -qf dangling=true
知道怎么查看,删除就简单了:
docker volume rm $(docker volume ls -qf dangling=true)
手动清理Docker镜像/容器/数据卷
对于旧版的Docker(版本1.13之前),是没有docker system命令的,因此需要进行手动清理。这里给出几个常用的命令
删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
删除所有dangling镜像(即无tag的镜像):
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
删除所有dangling数据卷(即无用的volume):
docker volume rm $(docker volume ls -qf dangling=true)
Comments | NOTHING