直接回答:服务器上磁盘满,先 df -h 看是哪个挂载点,再看 docker system df 分清镜像、容器、卷和构建缓存各占多少;构建缓存和容器日志是增长最快的两个,可以放心清。
创作背景:当天部署服务时,发现无法部署,后来经过日志排查后发现服务器磁盘满了,查询资料后进行了清理。话不多说,直接上解决方法。
目前遇到的磁盘占用满的基本都是跟docker有关,测试服务器因为频繁打包,所有缓存可能会占用很多,可以通过下面命令看哪部分占用多
docker system df
结果可能如下

Build Cache就是构建缓存,这个如果占用大可以直接用下面命令清除
docker builder prune --filter until=480h 这里面的480h意思是480小时以前的
如果是容器日志占用空间大可以
truncate -s 0 /var/lib/docker/containers/<container_id>/<container_id>-json.log
操作一:
1.查看磁盘大小: df -h

2.直接在最上层进行排序:du -a|sort -rn|head -5 或者**du -am | sort -rn | head -n 20 | awk '{printf "%.0f MB\t%s\n", $1, $2}'**以MB为单位显示前20个
du -sh 文件路径 这样可以查看文件的大小

3.然后找到最大的文件删除,ps:你要确定是否可以删除,比如一些.log/.tar等文件都可以直接删除,但是有的文件你就需要看一下是否在使用中:lsof fileName

看,第二次查询时返回了相应的pid,这个文件删除就要谨慎了。
4.清除文件以后还要继续df-h,有的人会发现我删除了,但是磁盘却没有任何减少,这就是就有人开始说博主是个骗子,其实还差最后一步。查看已删除空间却没有释放的进程:lsof -n | grep deleted,然后删除(kill -9 pid)。

至此,磁盘清理完毕。
操作二:
上面说的是正常的处理流程,如果你的服务器安装了docker,建议你直接先执行下面的命令,
**docker system prune**这个会吧停止的容器也删除,所以删除前可以吧容器都启动起来,然后运行命令,然后再把容器停止掉
命令执行后如果删除的0MB,则代表和docker无关。
但是这样清理会把一些没有在用的容器停掉,从而导致下次启动时没有容器,如果你在启动容器时碰到了:Error response from daemon: driver failed programming external connectivity 这个错误或者一直报没有容器,就需要重启docker服务即可重新生成自定义链DOCKER。输入指令 :systemctl restart docker
docker system prune:清理未使用的容器、网络和卷。docker image prune:清理悬空(dangling)镜像。docker container prune:清理所有已停止的容器。
这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。