Docker怎么删掉不用的layer?

https://hub.docker.com/_/node/

我直接输入的命令
docker pull node
是不是把所有的node的layer版本都下载下来了?
因为有600M呢···
我怎么删掉不用的呢?

阅读 10.3k
2 个回答
  1. 如果已经存在的 image layer,是不会重复下载的。

  2. 要用某个 image,就要下载所有的 layer,中间的 layer 也是必须的

  3. 删除不用的就 docker images ,找到没的,然后 docker rmi <image_id>

因为镜像大多数情况下是根据Dockerfile生成的,当然该方法也是官方建议的镜像生成方法,因为容易重现。而根据Dockerfile生成镜像的过程中,Dockerfile中几乎每一条指令都会以上一条指令生成的镜像为基础镜像创建容器,然后执行该条指令的内容,也就会生成一个新的layer,所以除了FROM后的最基础的镜像layer,剩下的可以看作是所有在可写层所做的操作形成的叠加,是无法删除的。如果你感觉有些层是不需要的,那么建议查看镜像日志:docker history ImageName,然后根据日志内容自己编写Dockerfile,去除不需要的操作步骤,那么重新构建的镜像就不会有你不需要的layer。祝你成功。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏