我对在Mac OS上运行的xargs行为感到困惑
我的形象如下:
sudo -s
我想通过以下过滤器删除它:
docker images | grep "docregistry/"
docregistry/jackrabbit latest
但我收到了一个错误:
docker images | grep "docregistry/" | awk '{print $1":"$2}' | xargs -0 docker rmi -f
如果我运行Error: No such image: docregistry/jackrabbit:latest
,一切都按预期工作。
提前致谢!
答案 0 :(得分:2)
-0
告诉xargs
它应该将其输入拆分为空字符docker
命令的参数,但您的管道不会 prodcue 任何空字符。这意味着awk
输出的换行符被视为图像名称的 part ;该错误实际上告诉您图像docregistry/jackrabbit:latest\n
不存在。 (如果grep
输出多个图像名称,则错误可能会更明显。)
假设Docker镜像不能(或者,至少在这种情况下,不会)包含空格,只需从-0
命令中删除xargs
。