最近在清理WEB日志时发现映射Docker里的目录内文件手动删除后,系统并没有释放相应的空间,Docker重启、docker system prune也没用。
该问题的表现为通过df命令查看能看到占用几百G,但用du 命令却显示没占用多少。
通过现象判断是在删除nginx日志的时候系统还有进程正在使用该文件,所以并没有释放空间。
这时通过 lsof -n | grep deleted 命令可以查看到有nginx进程使用的文件大小与占用的大小相符,这时通过kill -9 命令强制退出相关进程(需要找到父进程)即可释放空间。
当然 docker system prune在Docker运行时间久了后也能释放一定的空间。

本文描述了在Docker环境中遇到的一个特殊现象:手动删除映射目录内的文件后,系统并未释放对应的空间。文章分析了这一问题的原因,并给出了具体的解决办法,包括如何利用lsof命令查找正在使用已删除文件的进程并进行释放。
4280

被折叠的 条评论
为什么被折叠?



