使用docker有时想删除所有镜像,或删除所有容器,下面给出实现方法:
删除所有镜像:
sudo docker rmi $(sudo docker images | sudo grep -o '[0-9,a-f]\{8\}')
删除所有容器:
sudo docker rm $(sudo docker ps -a | sudo grep -o '[0-9,a-f]\{8\}')
下面讲解一下原理,删除镜像中,
sudo docker images //列出所有镜像
| //管道符号,相当有把列出点镜像字符串完全交给下一步处理
sudo grep -o '[0-9,a-f]\{8\}' //利用grep过滤字符串。通过镜像id删除镜像,
// 此处通过匹配字符串的八位数必须为0-9或a-f之间点数(十六进制)。
// -o 指定只输出匹配点字符串,而不是整行。
//记得在grep前加sudo来提升权限
//“sudo docker rmi 一个或多个镜像名”是docker删除镜像的命令
容器的原理差不多,不再赘述。