背景:
今天发现服务器的磁盘占用比较多 , 经过查看后确定是无用 docker 镜像太多造成的 , 所以需要手动删除 , 因为我们的项目自动化流程是用 jenkins 操作的 , 但是在生成镜像的时候没有加入删除旧镜像的操作 , 所以会留下这种后遗症 。
具体操作:
[devops@iZ8vbcrus31oj4bqvu77Z ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/bigdata-service/center-test staging 1cb06d95a8b4 4 days ago 718MB
test/bigdata-service/center-test <none> 57702530984d 4 days ago 718MB
test/bigdata-service/permission-center <none> 82c495713d2f 4 days ago 718MB
test/bigdata-service/data-service-portal-web staging 50b5163e2e02 4 days ago 141MB
test/bigdata-service/data-service-portal-web <none> 663ba4a2eacb 5 days ago 141MB
test/bigdata-service/permission-center <none> 4e21cf82ed37 5 days ago 718MB
# 需要过滤出<none> tag 的镜像
[devops@iZ8vbcrus31oj4bqvu77Z ~]# docker images |awk '{if($2~/<none>/)print $1,$2}' OFS=":"
test/bigdata-service/center-test:<none>
test/bigdata-service/permission-center:<none>
test/bigdata-service/label-management-service:<none>
[devops@iZ8vbcrus31oj4bqvu77Z ~]# docker images |awk '{if($2~/<none>/)print $3}'|xargs docker rmi
本人通过 docker images |awk '{if($2~/<none>/)print $1,$2}' OFS=":" 格式化后 使用 docker rmi 删除是不行的 , 百度一番后说是命令行不支持<>特殊字符 , 所以使用ID进行删除 , 如有好办法 , 请大家留言指点