因為鏡像大多數情況下是根據Dockerfile生成的,當然該方法也是官方建議的鏡像生成方法,因為容易重現。而根據Dockerfile產生映像的過程中,Dockerfile中幾乎每一條指令都會以上一條指令產生的映像為基礎映像建立容器,然後執行該條指令的內容,也會產生一個新的layer,所以除了FROM後的最基礎的鏡像layer,剩下的可以看作是所有在可寫層所做的操作形成的疊加,是無法刪除的。如果你感覺到有些層是不需要的,那麼建議查看鏡像日誌:docker history ImageName,然後根據日誌內容自己編寫Dockerfile,去除不需要的操作步驟,那麼重新建構的映像就不會有你不需要的layer。祝你成功。
如果已經存在的 image layer,是不會重複下載的。
要用某個 image,就要下載所有的 layer,中間的 layer 也是必須的
刪除不用的就
docker images
,找到没的,然后docker rmi <image_id>
因為鏡像大多數情況下是根據Dockerfile生成的,當然該方法也是官方建議的鏡像生成方法,因為容易重現。而根據Dockerfile產生映像的過程中,Dockerfile中幾乎每一條指令都會以上一條指令產生的映像為基礎映像建立容器,然後執行該條指令的內容,也會產生一個新的layer,所以除了FROM後的最基礎的鏡像layer,剩下的可以看作是所有在可寫層所做的操作形成的疊加,是無法刪除的。如果你感覺到有些層是不需要的,那麼建議查看鏡像日誌:docker history ImageName,然後根據日誌內容自己編寫Dockerfile,去除不需要的操作步驟,那麼重新建構的映像就不會有你不需要的layer。祝你成功。