1、报错
Linux服务器报错磁盘没空间了:
java
no space left on device
2、排错
从根目录看下哪个目录有问题:
bash
cd /
du -sh *
# s即只显示总和,h即显示人类可读格式,就是数字+单位的格式
目录有点多,sort排序下:
bash
# 以MB为单位转换,然后降序排
du -sm * | sort -nr
PS,关于Linux目录文件按大小排序的实现,方式一:
bash
# 以Byte为单位排序
du -sb * | sort -nr
# 以KB为单位排
du -sk * | sort -nr
# 以MB为单位排
du -sm * | sort -nr
# 以上均降序,升序为
du -sm * | sort -n
方式二:(推荐,直接带各种单位排序)
bash
# 降序
ll -hS
# 升序
ll -rhS
总之,发现是docker的overlay2目录占用了大量空间。
3、解决
执行以下指令,清除以下内容:
- all stopped containers:已停止的容器
- all networks not used by at least one container:未被任何容器使用的网络
- all images without at least one container associated to them:未被使用的镜像
- all build cache:构建的缓存
bash
# 输入y
docker system prune -a
解决成功,查看效果:
bash
df -h /
4、docker system 指令补充
- 查看磁盘占用情况
bash
docker system df
- 查看docker系统信息
bash
docker system info
- 查看服务端事件
bash
docker system events
- 忘了就help
bash
docker system --help