成功解决:docker,一行命令删除所有无名<none>镜像

场景描述

在测试过程中生成了很多镜像,每次都用同一个名字
导致旧镜像和新镜像名字重叠,然后旧镜像名字被剥夺,成为无名镜像

 

解决办法

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

 

详细解释

docker images 列出所有镜像

docker images -f 按照一定的要求输出镜像

docker images -f dangling=true 将所有的悬空镜像输出(dangling 悬空=没有名字),含有状态、时间等等的信息

docker images -f dangling=true -q 将所有悬空镜像输出,并且只输出它们的名字

docker rmi 删除镜像(rmi = remove image)

docker rmi -f 强制删除镜像(-f  =  --force)

$()  bash运算符,将括号里面的语句当做命令输入并获取结果

docker rmi $() 将美元运算符的结果作为rmi命令的输入,即将$运算结果

 

更多

docker images -f dangling=true -q | docker rmi -f -

| (竖线)bash的管道运算符
-(横线)bash的标准输入运算符

两个命令连起来应该是,将第一个命令的输出作为第二个命令的输入

报错

Error response from daemon: inbalid reference format

我查了查,没找到确切的原因,我才是因为,docker rmi -f 不从标准输入中接收参数
因为我试了试echo 123 | echo - 输出是 - ,应该说明了不是所有的命令都能够用横线的,有一些一定要用$

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值