1 | docker images | awk '{ print $3 }' | grep -v IMAGE | xargs -I {} sudo docker rmi {} |
删除所有容器的版本
1 | docker ps -a | awk '{ print $1 }' | grep -v CONTAINER | xargs -I {} docker rm {} |
命令解析
- docker images
这个不用多说 , 列出所有的docker镜像信息
总共5列 ,记住
docker images | awk ‘{ print $2 }’
利用管道把所有的镜像信息输入到awk中
awk 简单的说就是一个列提取命令 ,当然它的用处不止是在文本中提取列
本文不讨论awk的具体使用 , 仅仅说明这里用到的awk可以很容易的看出 ,IMAGE ID 是所有列中的第3列
那么我们简单的使用 awk ‘{ print $3 }’ 就可以得到第三列的所有内容docker images | awk ‘{ print $3 }’ | grep -v IMAGE
这个命令的目的是排除不是 IMAGE ID 的列头IMAGE ID
grep我们很熟悉 ,就是用来搜索文本中的某些字符串并展示整行
grep -v 则是排除搜索到的内容 ,展示不包含有这些字符串的内容
至此我们就得到了所有镜像ID
- docker images | awk ‘{ print $3 }’ | grep -v IMAGE | xargs -I {} sudo docker rmi {}
利用xargs -I {} 把得到的所有镜像ID ,逐行输入到 docker rmi 中
也就是的对每一行的 IMAGE ID 进行 docker rmi
我们总共有5个IMAGE ID , 就会执行5次 docker rmi ID