删除虚悬镜像

列出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. Angular 18+ 高级教程 – Component 组件 の 生命周期钩子 (Lifecycle Hooks)

    前言 之前在 Component 组件 の Angular Component vs Custom Elements 文章中,我们有学习过几个基础的 Lifecycle Hooks. 比如 OnCha ...

  2. 普元中间件Primeton AppServer6.5部署SuperMap iServer

    本文使用Windows环境普元中间件Primeton AppServer6.5(以下简称PAS)部署SuperMap iServer 一.部署前准备 本文使用SuperMap iServer 11.0 ...

  3. 生理性喜欢(把我吃掉&病态饥饿)

    alloverzyt 转载好文章 https://www.zhihu.com/question/627599874/answer/3494578704 什么是生理性喜欢? 是吃掉. 这不是什么夸张的写 ...

  4. 【解题报告】P8477 「GLR-R3」春分

    P8477 「GLR-R3」春分 题目看起来比较魔怔,考虑怎么搞一下. 首先,一个最简单的想法,每对溶液组都配一个板子,可以用 \(n^2\) 个板子解决,看得出来很不优啊,但是可以得到 Sub1 的 ...

  5. Serilog文档翻译系列(七) - 应用设置、调试和诊断、开发接收器

    01.应用设置 Serilog 支持在 App.config 和 Web.config 文件中使用简单的 配置语法,以设置最低日志级别.为事件添加额外属性以及控制日志输出. Serilog 主要通过代 ...

  6. Redis数据库常见命令

    Redis数据库常见命令 Linux启动Redis # 启动服务 redis-server # 开启客户端 redis-cli # 关闭redis服务 shutdown #查看服务是否运行 ping ...

  7. 2021年8月国产数据库排行榜:TiDB稳榜首,达梦返前三,Kingbase进十强,各厂商加速布局云生态

    8月份的国产数据库流行度排行榜新鲜出炉.本月共有139个数据库参与了排名. 先来看看排行榜前五名.PingCAP的TiDB分数连续第二个月上涨,总分达到630.21,以136.48的分数差拉开了与第二 ...

  8. Vue的nextTick的原理

    知识储备:事件循环有宏任务和微任务,宏任务所处的队列就是宏任务队列,队列可以有多个,第一个队列只有一个任务就是执行主线程的js代码,剩余队列任务有setTimeout setInterval微任务所处 ...

  9. k8s的pod的理解

    pod共享相同的IP地址和端口空间. 这意味着在同一 pod中的容器运行的 多个进程需要注意不能绑定到相同的端口号, 否则会导致端口冲突, 但这只涉及同一pod中的容器. 由于每个pod都有独立的端口 ...

  10. DIY Matter Bridge 和智能锁简单联动的实践

    一. 写在前面 在之前的博客文章 <基于乐鑫 ESP32-C3 的 Matter Light 实践>中,我们利用乐鑫的硬件和 SDK 方案实现了简单的 Light 例程,并对 Matter ...