从docker清洁图像时出错

当我跑步

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

从接受的答案到我有时候得到的这个问题

 docker: "rmi" requires a minimum of 1 argument. 

难道我做错了什么? 我怎样才能防止这种情况发生?

这个答案的问题是,它运行docker rmi即使可能没有任何图像要删除(即当docker images --filter....的输出是空的),那就是当你得到错误。

这个问题的@rubicks解决scheme并没有做得更好,但是指出了一个可用的替代scheme:

 docker images --no-trunc --all --quiet --filter="dangling=true" | xargs --no-run-if-empty docker rmi 

xargs--no-run-if-empty参数可以完成它所说的事情,并且可以防止发生错误,即使您运行它并且没有任何可以清理的东西。

我有以下的别名,因为上面是每一次我想要使用它(第一个用于删除未使用的容器)键入有点太多:

 alias drrm='docker ps --no-trunc --all --quiet --filter="status=exited" | xargs --no-run-if-empty docker rm' alias drrmi='docker images --no-trunc --all --quiet --filter="dangling=true" | xargs --no-run-if-empty docker rmi'