Docker镜像批量清理之道
2018-12-16 11:12
766 查看
使用jenkins作为打包的工具,主机上的磁盘空间总是被慢慢被占满,直到jenkins无法运行。本文从几个方面来清理docker垃圾。
批量删除已经退出的容器
docker ps -a | grep "Exited" | awk '{print $1 }' | xargs docker rm
批量删除带有none字段的镜像
$3一般就是取出每一行的镜像id字段
# 方案1: 根据镜像id删除镜像
docker images| grep none |awk '{print $3 }'|xargs docker rmi
# 方案2: 根据镜像名删除镜像
docker images | grep wecloud | awk '{print $1":"$2}' | xargs docker rmi
方案1,根据镜像ID删除镜像时,有写镜像虽然镜像名不同,但是镜像ID都是相同的,这是后往往会删除失败。所以根据镜像名删除镜像的效果会更好。
删除镜像定时任务脚本
#!/bin/bash # create by wangduanduan # when current free disk less then max free disk, you can remove docker images # GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' max_free_disk=5 # 5G. when current free disk less then max free disk, remove docker images current_free_disk=`df -lh | grep centos-root | awk '{print strtonum($4)}'` df -lh echo "max_free_disk: $max_free_disk G" echo -e "current_free_disk: ${GREEN} $current_free_disk G ${NC}" if [ $current_free_disk -lt $max_free_disk ] then echo -e "${RED} need to clean up docker images ${NC}" docker images | grep none | awk '{print $3 }' | xargs docker rmi docker images | grep wecloud | awk '{print $1":"$2}' | xargs docker rmi else echo -e "${GREEN}no need clean${NC}" fi
注意事项
为了加快打包的速度,一般不要太频繁的删除镜像
。因为老的镜像中的某些不改变的层,可以作为新的镜像的缓存,从而大大加快构建的速度。
相关文章推荐
- docker 镜像和容器的批量清理
- docker快速批量删除容器或镜像
- docker强制批量删除none的image镜像
- docker 批量删除无用的容器或镜像
- Docker Registry 私有镜像仓库批量清理镜像
- docker批量删除none的image镜像
- docker镜像文件导入与导出,支持批量
- docker中批量删除 tag为none的镜像
- 将批量指定的docker镜像打成文件
- docker中批量删除 tag为none的镜像
- Docker 容器与镜像清理汇总
- 用python脚本批量删除Docker镜像
- docker 如何批量删除镜像
- marathon运行docker,会残留很多死掉的容器,批量清理
- Centos7.2 新镜像、系统到手 更新清理 并且安装docker1.2以后版本 目前内容适合docker 1.7.x ce(社区版)
- docker 批量删除 <none> 镜像命令
- docker 批量删除容器和镜像
- Docker 镜像配置
- Docker镜像迁移
- 修改Docker默认镜像和容器的存储位置的方法