搜尋

首頁  >  問答  >  主體

Docker怎麼刪掉不用的layer?

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

我直接輸入的指令
docker pull node
是不是把所有的node的layer版本都下載下來了?
因為有600M呢···
我怎麼刪掉不用的呢?

天蓬老师天蓬老师2771 天前807

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-04-24 09:14:12

    1. 如果已經存在的 image layer,是不會重複下載的。

    2. 要用某個 image,就要下載所有的 layer,中間的 layer 也是必須的

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-24 09:14:12

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

    回覆
    0
  • 取消回覆