..
jenkins slave 清理过期镜像的方法
jenkins 上一直在不停的构建新的镜像,导致镜像越来越多,写满了 /var/lib/docekr 所在的分区,所以我们需要定期的清理多余的镜像。
一般的,我们在开发周期构建镜像的时候,没有修改过镜像的版本号码,一个进行不停的 retag , 这样老的镜像的 tag 就会被覆盖,tag 变成 none。
node 8 0bf36d7ccc1e 4 weeks ago 895MB
maven 3-jdk-8 f44a5194086a 5 weeks ago 636MB
<none> <none> 6752e2093697 5 weeks ago 12.9MB
swaggerapi/swagger-ui latest 6f941e6fd913 5 weeks ago 51.7MB
这种 tag 为 none 的镜像就已经可以删除了。 jenkins 上可以创建如下任务来删除这些没有作用的镜像。
pipeline {
agent {
label "node1"
}
stages {
stage("clean images with tag none"){
steps {
parallel(
node1: {
sh("docker image ls | grep none | awk '{print \$3}' | xargs -I {} docker rmi {} || true")
},
node2:{
sh("docker image ls | grep months | awk '{print \$3}' | xargs -I {} docker rmi {} || true")
})
}
}
}
}