某天打开系统发现,项目登录页面的验证码无法打开了。于是查看日志,看到这样一个提示。
No space left on device.
于是使用df -h /df -i命令查看系统容量:
看到磁盘空间的确满了。
发现主要问题出在docker的overlay2文件上。
overlay/overlay2表示Docker的存储驱动
使用docker system prune
清理docker
该指令是自动清理空间,该指令默认会清除所有如下资源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)
注意:
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 --force 参数用以忽略相关告警确认信息。
指令结尾处会显示总计清理释放的空间大小。
可以看下docker的占用情况,使用下面命令:docker system df
可以查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况
这里发现镜像和Volumes数据卷占用客供件还很大,使用docker system prune -a
清理无用镜像
使用 docker volume rm $(docker volume ls -qf dangling=true)
删除所有dangling数据卷(即无用的Volume,僵尸文件)
再次查看,清理干净