更新時(shí)間:2020-05-27 來源:黑馬程序員 瀏覽量:
Docker使用了一系列的底層技術(shù)來充分發(fā)揮其技術(shù)特色,這些底層技術(shù)包括有Namespaces、Control groups、Union file systems和Container format等,其具體含義如下。
1. Namespaces(名稱空間)
Docker使用名稱空間來為容器提供隔離的工作空間。當(dāng)一個(gè)容器運(yùn)行時(shí),Docker就會(huì)為該容器創(chuàng)建一系列的名稱空間,并為名稱空間提供一層隔離。每一個(gè)容器都運(yùn)行在相對(duì)隔離的環(huán)境下,對(duì)其他名稱空間是相對(duì)受限的。
2. Control groups(控制組)
基于Linux系統(tǒng)的Docker引擎也依賴于另一項(xiàng)叫做Control groups(cgroups,控制組)的技術(shù)??刂平M可以對(duì)程序進(jìn)行資源限定,并允許Docker引擎在容器間進(jìn)行硬件資源共享以及隨時(shí)進(jìn)行限制和約束,例如,開發(fā)者可以限制某特定容器的可用內(nèi)存。
3. Union file systems(聯(lián)合文件系統(tǒng))
聯(lián)合文件系統(tǒng)(UnionFS)是一種分層、輕量級(jí)并且高性能的文件系統(tǒng),它支持將文件系統(tǒng)的修改作為一次提交來一層層地疊加,同時(shí)可以將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下。不同Docker 容器可以共享一些基礎(chǔ)的文件系統(tǒng)層,與自己獨(dú)有的改動(dòng)層一起使用,可以大大地提高存儲(chǔ)效率。Docker目前支持的聯(lián)合文件系統(tǒng)包括AUFS、btrfs、 vfs 和 DeviceMapper。
4. Container format(容器格式)
Docker 引擎將名稱空間、控制組和聯(lián)合文件系統(tǒng)組合成一個(gè)叫做容器格式的整體。當(dāng)前默認(rèn)的容器格式是libcontainer,未來Docker可能會(huì)通過與其他技術(shù)(如BSD Jails或者Solaris Zones)的集成使用來開發(fā)其他的容器格式。