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