误删/var/lib/docker/overlay2/xxx no such file or directory docker导致jenkins构建失败

后端 潘老师 1个月前 (05-15) 21 ℃ (0) 扫码查看

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

ERROR: failed to solve: failed to prepare dzzq12pai98kw8byrq45ex7m7 as s7t6ejebmg1mye962qd1vk8ra: open /var/lib/docker/overlay2/pnfdyha3ye99q1y9rdtc1aufd/link: no such file or directory

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

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

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

docker system prune -a

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

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

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


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12977.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】