接上篇文章《jenkins构建Build step ‘Send build artifacts over SSH’ changed build result to UNSTABLE解决办法》中我们排查出是docker的overlay2中的文件占用空间特别大,就直接删除了该目录下所有7天前的文件,结果发现虽然jenkins虽然显示构建成功,蓝色图标,但是查看控制台日志发现如下报错:

也就是说构建其实还是失败了,原因就在于:

docker容器将容器缓存放在了overlay2这个目录下,保存着当前服务的状态等资源。将目录删除后,容器默认会先去查状态,然后再进行销毁、重启等操作。这时候,找不到目录,就停在了这里。jenkins构建自然也就失败了,解决办法如下:

这主要原因就是缓存镜像层的问题,要清除缓存镜像层,执行如下指令:

docker system prune -a 

然后发现直接释放了54G的磁盘空间,

然后再去jenkins构建,发现overlay2就重建了,正常构建完成,完美,构建成功!

得出的教训就是如果想要清理docker内存,使用docker删除镜像的命令,除非删除挂载卷备份文件,其他不要使用rm去删文件,否则很容易出问题还找不到解决办法。