使用docker build构建镜像时,其实是基于基础镜像创建容器,并在这个容器中运行第一条指令,之后将保存为镜像,并删除容器。之后又基于这个新镜像创建容器,执行第二条指令,保存为镜像,删除容器,删除上一个镜像(只删除了镜像信息,镜像层没有删除)。如果反复,知道最后一个指令结束,得出的就是目标镜像了。
docker build
那么如果构建过程中出现了意外,那么就会残留下一个意外退出的容器,以及它所依赖的上一层镜像。其实这些都是并没有什么*用的东西,我们直接删除即可。因为容器依赖了镜像,删除镜像前先删除容器。