用過Dockerfile構建鏡像的都知道Dockerfile執行完每一條指令都會建立一個新的鏡像,最終的鏡像由層層疊加而成。
最大的好處就是共享資源。
當多個鏡像從相同的base鏡像構建而來,那麼Docker host只須要在磁盤保存一份base鏡像,同時內存中也只須要加載一份base鏡像,就能夠爲全部的容器服務了。docker
當容器啓動時,一個新的可寫層被加載到鏡像的頂層,這一層一般被成爲「容器層」。內存
對容器的改動,不管添加、刪除、仍是修改文件都只會發生在容器層中。資源
容器層是可寫的,鏡像層是隻讀的。it
只有當須要修改時才賦值一份數據,這種特性被稱爲Copy-On-Write。容器
容器層保存的是鏡像層的變化,但不會對鏡像自己進行任何修改。這也解釋了鏡像能夠被多個容器共享。file