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