删除虚悬镜像

列出REPOSITORYTAG均为<none>的虚悬镜像:

$ docker images --filter dangling=true

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
<none> <none> a55788f7b617 16 minutes ago 167MB
<none> <none> 2b5196aa06e0 22 minutes ago 677MB
<none> <none> 41abb532c35e 20 hours ago 677MB
<none> <none> 7ea74ab89838 23 hours ago 677MB
<none> <none> b1bd11ec8f78 24 hours ago 135MB
<none> <none> 7764b9256a1d 27 hours ago 674MB

删除所有虚悬镜像

docker rmi $(docker images --filter dangling=true -q)

也可以使用 docker image prune 命令,具体可参考 这里

docker image prune 命令还支持删除部分虚悬镜像:

docker image prune -f --filter until=24h 会删除24小时前的虚悬镜像,-a 标签还支持删除所有未使用的镜像。

批量删除指定镜像

自动构建过程中通常会伴随镜像的生成,若没有及时清理,会造成存在大量REPOSITORY一样而TAG不一样的镜像。通常这些镜像是不会使用的(仅会使用latest镜像)。

列出latest镜像之前的所有镜像:

$ docker images aka-gm --filter before=aka-gm:latest

REPOSITORY   TAG               IMAGE ID       CREATED        SIZE
aka-gm 20221101_160758 ce8386df2d69 19 hours ago 183MB
aka-gm 20221031_172612 47575e94c770 42 hours ago 183MB
aka-gm 20221101_144456 47575e94c770 42 hours ago 183MB
aka-gm 20221031_151951 26f8429ac4a5 44 hours ago 183MB
aka-gm 20221031_104111 cc658c3c2216 2 days ago 183MB
aka-gm 20221028_184209 2a144383dd86 4 days ago 183MB
aka-gm 20221027_145419 20c7ce70a8d4 5 days ago 183MB
aka-gm 20221026_153626 f1d4f94a426e 6 days ago 183MB

这些镜像是不再使用的,且已推送到私有仓库(这里省略了仓库的HOST),现在需要把他们全部删除。

从以上输出中取出镜像的REPOSITORYTAG

$ docker images aka-gm -f before=aka-gm:latest | grep aka-gm | awk '{printf "%s:%s\n",$1,$2}'

aka-gm:20221101_160758
aka-gm:20221031_172612
aka-gm:20221101_111237
aka-gm:20221101_144456
aka-gm:20221031_151951
aka-gm:20221031_104111
aka-gm:20221028_184209
aka-gm:20221028_115611
aka-gm:20221028_102701
aka-gm:20221027_145419
aka-gm:20221026_145618
aka-gm:20221026_153626

或者使用:docker images aka-gm --filter before=aka-gm:latest --format "{{.Repository}}:{{.Tag}}"

接下来直接删除镜像即可:docker images aka-gm -f before=aka-gm:latest | grep aka-gm | awk '{printf "%s:%s\n",$1,$2}' | xargs -r docker rmi

排除TAG<none>的镜像

若以上列出的镜像中有TAG<none>的,会导致删除失败,需要排除该镜像。多过滤一次:

docker images aka-gm -f before=aka-gm:latest | grep aka-gm | grep -v "<none>" | awk '{printf "%s:%s\n",$1,$2}' | xargs -r docker rmi

删除TAG<none>的镜像

同样只需修改上述命令中的grep即可:

docker images aka-gm -f before=aka-gm:latest | grep "<none>" | awk '{printf "%s:%s\n",$1,$2}' | xargs -r docker rmi

docker 批量删除镜像的更多相关文章

  1. docker 批量删除 镜像 容器

    我们在docker构建和测试时,经常会产生很多无用的镜像或者容器,我们可用如下两条命令一个一个删除. docker container rm 容器id #删除容器 可简写: docker rm 容器i ...

  2. docker批量删除镜像

    docker rmi `docker images | grep swb | grep -v grep | awk '{print $3}'` 参考: https://blog.csdn.net/hi ...

  3. docker 批量删除容器和镜像

    docker 批量删除容器和镜像 1,删除单个镜像或者容器 docker  rmi  镜像ID/镜像名字:TAG docker  rm  容器ID/容器名字 1.停止所有的container,这样才能 ...

  4. docker批量删除本地镜像和容器

    长时间运行docker,每次只用docker kill去停止容器,但是从没删除过本地镜像,导致有上百个镜像在占用内存. 1.批量停止容器 docker container stop $(docker ...

  5. docker无法删除镜像,Error: No such container,附docker常用命令

    最近打算删除掉docker镜像但是发现有几个镜像就是删除不了,加了-f强制删除也不行,一直报Error: No such container的错误,最后终于找到了办法直接删除文件,步骤如下: 切换到r ...

  6. [Docker]如何批量删除镜像

    docker 使用一段时间之后,可能堆积很多用不着的,或者编译错误的镜像,一个一个删除就很麻烦,需要一个批量删除的方法,如下: docker rmi $(docker images | grep &q ...

  7. docker批量删除容器、镜像

    1.删除所有容器 docker rm `docker ps -a -q` docker rm $(docker ps -aq) 2.删除所有镜像 docker rmi `docker images - ...

  8. docker批量删除容器、镜像(转载)

    1.删除所有容器 docker rm `docker ps -a -q` 2.删除所有镜像 docker rmi `docker images -q` 3.按条件删除镜像 没有打标签 docker r ...

  9. docker 批量删除 none 镜像

    在使用 docker images 命令的时候,经常会在列表中看到 <none>:<none> 的镜像. 这种镜像在 Docker 官方文档中被称作 dangling imag ...

  10. docker 批量删除

    杀死所有正在运行的容器docker kill $(docker ps -a -q) 删除所有已经停止的容器docker rm $(docker ps -a -q) 删除所有未打 dangling 标签 ...

随机推荐

  1. ASP.NET Core Library – Hangfire

    前言 以前写过 Hangfire 的学习笔记, 但写的很乱. 这篇做个整理. 介绍 Hangfire 是用来做 server task 的, 比如: background job, delay job ...

  2. OData – OData vs GraphQL

    GraphQL 很火, 很厉害, 但是它和 OData 有本质的区别. 所以并不是说任何一样对比另一个绝对的好. GraphQL is not OData twitter 的讨论 有几个点是我能 Ge ...

  3. C#|.net core 基础 - 扩展数组添加删除性能最好的方法

    今天在编码的时候遇到了一个问题,需要对数组变量添加新元素和删除元素,因为数组是固定大小的,因此对新增和删除并不友好,但有时候又会用到,因此想针对数组封装两个扩展方法:新增元素与删除元素,并能到达以下三 ...

  4. 将nii文件CT图像更改窗宽窗位之后保存成nii文件

    因为项目需要把CT图像中骨头更加明确的显示出来,且还需要保存nii文件,所以查了一些资料,在这里做一下笔记,方便以后使用.代码如下: import nibabel as nib import nump ...

  5. 墨天轮访谈 | 百度云邱学达:GaiaDB如何解决云上场景的业务需求?

    分享嘉宾:邱学达 百度云原生数据库资深技术专家 整理:墨天轮社区 导读 业务上云的大背景对弹性与可靠性的要求越来越高,传统架构的单机数据库或是分片数据库已经很难支撑快速增长的业务,导致单机瓶颈.扩容缩 ...

  6. T3 出行云原生容器化平台实践

    公司简介 T3 出行是南京领行科技股份有限公司打造的智慧出行生态平台,由中国第一汽车集团有限公司.东风汽车集团有限公司.重庆长安汽车股份有限公司发起,联合腾讯.阿里巴巴等互联网企业共同投资打造.公司以 ...

  7. docker常用命令与应用

    docker入门与docker file介绍 原文地址 docker常用命令 https://blog.csdn.net/leilei1366615/article/details/106267225 ...

  8. MIT 18.06 Linear Algebra by Gilbert Strang

    MIT 18.06 Linear Algebra by Gilbent Strang Text and Solution: <Introduction to Linear Algebra> ...

  9. Web渗透03_扫描技术

    前言 在获取目标主机的各类信息时,有一些综合工具可以一键扫描完成,大大方便了测试效率.但扫描结果并非100%的正确,需要我们的判断. namp NMAP(Network Mapper)是一款开放源代码 ...

  10. http协议、web服务器-并发服务器1

    阅读目录: 1.http协议 2.Web静态服务器-1-显示固定的页面 3.Web静态服务器-2-显示需要的页面 4.Web静态服务器-3-多进程 5.Web静态服务器-4-多线程 一.HTTP协议简 ...