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