for i in $(docker images | awk 'NR > 1 {print $3}'); do
docker rmi -f $i;
done
awk:这是awk命令的起始,用于模式匹配、文本处理等。
- 'NR>1:这是一个条件表达式,NR是内置变量,代表当前行的行号。NR>1意味着从第二行开始(即不包括第一行)。
- {print $3}:当上述条件满足时(即当前行号大于1),执行大括号内的动作,这里是指打印每行的第三列(在awk中,列通过1,1,2, 3…这样的形式来引用,3…这样的形式来引用,3即为第三列)。
在Shell脚本中,列表应该用括号包围,
- 正确的做法是使用反引号
$(docker images | awk 'NR > 1 {print $3}')
`docker images | awk 'NR > 1 {print $3}'`
直接删除镜像前,最好确认这些镜像没有被任何容器使用。
- Docker通常不允许删除被容器使用的镜像,除非使用 -f 或 --force 参数强制删除。