场景:

       有时候重新构建镜像的时候,该镜像正在被某容器使用中,那么在重新构建同名同版本镜像后,docker保留原来的镜像,即容器还是用原来的,除非重启。 
       那么原来的镜像名称变成NONE,TAG也成了NONE。

  • docker images

在docker中执行上述命令,会看到一些镜像:

然后列出所有的容器 ID:

  • docker ps -a -q

删除前应该停止所有的容器:

  • docker stop $(docker ps -a -q)

批量删除tag为"<none>"镜像可以采用如下方法(下面两种方式均可以):

  • docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
  • docker images | grep none | awk '{print $3}' | xargs docker rmi

注:

删除所有停止的容器:

  • docker rm $(docker ps -a -q)

删除所有的镜像:

  • docker rmi $(docker images -q)