在使用 docker images 命令的时候,经常会在列表中看到 <none>:<none> 的镜像。

这种镜像在 Docker 官方文档中被称作 dangling images,指的是没有标签并且没有被容器使用的镜像。

docker build 或者 docker pull 新镜像的时候,如果之前已经存在了,涉及到镜像版本更新的话,那么之前的镜像就变成了临时镜像,也就是 <none>:<none> 镜像。

删除 dangling 镜像:

docker image prune

或者:

docker rmi $(docker images -f "dangling=true" -q)

如果镜像被容器引用了,是不能直接删除的,需要先删除容器。

# 删除容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1}')
# 删除 images
docker rmi $(docker images | grep "none" | awk '{print $3}')

或者:

docker ps -a | grep "Exited" | awk '{print $1}'| xargs docker rm
docker images | grep none | awk '{print $3}'| xargs docker rmi

推荐阅读:

  • 计算机经典书籍(含下载方式)
  • 技术博客 硬核后端技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
  • Go 程序员 Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。
  • 面试题汇总 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

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

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

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

  2. docker批量删除none镜像

    1.直接用docker images | grep none | awk ‘{print $3}’ |xgars docker rmi 通过关键字搜索,得到docker id,进行删除

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

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

  4. 在Linux主机使用命令行批量删除harbor镜像

     在Linux主机使用命令行批量删除harbor镜像 脚本使用说明: 此脚本不是万能脚本,根据自身环境要调整很多 能用harbor的域名就不要用IP 脚本前半部分可以套用,后半部分需一步一步试错,结合 ...

  5. docker 批量删除 镜像 容器

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

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

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

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

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

  8. docker 批量删除

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

  9. docker无法删除<none>镜像

    .进入root权限 sudo su # 或 sudo -i .停止所有的container(这样才能够删除其中的images): docker stop $(docker ps -a -q) 如果想要 ...

随机推荐

  1. ASCII、Unicode和UTF-8等常见字符编码格式介绍

    信息存储在计算机中是转换成二进制来存储的,二进制的发明据说是来源于中国阴阳八卦.后德国数理哲学大师莱布尼茨是最早接触中华文化的欧洲人之一,从他的传教士朋友鲍威特寄给他的拉丁文译本<易经>中 ...

  2. 内核内存分配器SLAB和SLUB

    内核分配器的功能 在操作系统管理的虚拟内存中,用于内存管理的最小单位是页,大多数传统的架构是4KB.由于进程每次申请分配4KB是不现实的,比如分配几个字节或几十个字节,这时需要中间机制来管理页面的微型 ...

  3. 【刷题-LeetCode】210. Course Schedule II

    Course Schedule II There are a total of n courses you have to take, labeled from 0 to n-1. Some cour ...

  4. DataTable 中文国际化

    DataTable中文设置,详见代码 1 var table = $('#example').DataTable({ 2 "language": { 3 "process ...

  5. golang中使用zap日志库

    1. 快速使用 package main import ( "go.uber.org/zap" "time" ) func main() { // 1. sug ...

  6. String类(获取,转换,判断,比较)

    1 package cn.itcast.p1.string.demo; 2 3 import java.util.Iterator; 4 5 import com.sun.org.apache.xpa ...

  7. fluentd分布式日志管理系统

    如何有效地收集和管理大量服务器的日志一直是企业很头疼的一个问题,部分企业应用shell脚本来管理,部分企业基于hadoop来开发自己的日志管理系统,第一种管理成本巨大,需要大量的人力来维护脚本的正常运 ...

  8. Element Plus 正式版发布啦!🎉🎉

    今天,我们非常高兴地宣布 Element Plus 稳定版正式发布.自第一个 commit 起,经过 1 年零 7 个月的持续迭代开发,总计 2635 commits,经过 256 位贡献者所提交的 ...

  9. JVM学习六:堆分析

    一.内存溢出(OOM)的原因 在JVM中,有哪些内存区间? 堆溢出 public static void main(String args[]){ ArrayList<byte[]> li ...

  10. list和tuple的用法区别

    1.list中是可变的,tuple不可变  所以tuple没有insert, pop,append方法 2.定义只有一个元素的tuple的时候,必须加逗号,否则不会被认为是tuple,而被识别为括号 ...