docker鏡像加速原理?
Docker鏡像加速的原理:因?yàn)镈ocker鏡像是分層的,因此在加載一個(gè)鏡像的時(shí)候,會(huì)按照從底層到高層的順序依次加載該鏡像所需要的鏡像層。在加載的過程中,如果當(dāng)前鏡像層已經(jīng)存在,則會(huì)跳過當(dāng)前鏡像層。比如:已經(jīng)下載過MySQL鏡像,現(xiàn)在要下載Tomcat鏡像,而這兩個(gè)鏡像都需要centos鏡像層,那么下載Tomcat鏡像的時(shí)候,就會(huì)跳過下載CentOS鏡像層。
Docker鏡像實(shí)際上是由一層一層文件系統(tǒng)組成,這種層級(jí)文件系統(tǒng)就是UnionFS
當(dāng)用docker run啟動(dòng)這個(gè)容器時(shí),實(shí)際上在鏡像的頂部添加了一個(gè)新的可寫層。這個(gè)可寫層也叫容器層。
這里我們通過案例來證明一下,這是我本地已經(jīng)下載好的鏡像包,大家可以看到centos這個(gè)鏡像包的大小才209M,平時(shí)我們安裝的虛擬機(jī)上的centos都是幾個(gè)G,這個(gè)里為什么200M就可以?這里我們的centos鏡像文件只是一個(gè)最精簡的rootfs版本,與底層系統(tǒng)共用了kernel,所以才200M就可以將一個(gè)centos跑起來,對(duì)于不同發(fā)行版本可能這個(gè)大小會(huì)略微有所不同。