天天看點

《第一本Docker書(修訂版)》——1.5 Docker的技術元件

本節書摘來自異步社群《第一本docker書(修訂版)》一書中的第1章,第1.5節,作者:【澳】james turnbull(詹姆斯•特恩布爾)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

docker可以運作于任何安裝了現代linux核心的x64主機上。推薦的核心版本是3.8或者更高。docker的開銷比較低,可以用于伺服器、桌上型電腦或筆記本。它包括以下幾個部分。

一個原生的linux容器格式,docker中稱為libcontainer。

linxu核心的命名空間(namespace)[9],用于隔離檔案系統、程序和網絡。

檔案系統隔離:每個容器都有自己的root檔案系統。

程序隔離:每個容器都運作在自己的程序環境中。

網絡隔離:容器間的虛拟網絡接口和ip位址都是分開的。

資源隔離和分組:使用cgroups[10](即control group,linux的核心特性之一)将cpu和記憶體之類的資源獨立配置設定給每個docker容器。

寫時複制[11]:檔案系統都是通過寫時複制建立的,這就意味着檔案系統是分層的、快速的,而且占用的磁盤空間更小。

日志:容器産生的stdout、stderr和stdin這些io流都會被收集并記入日志,用來進行日志分析和故障排錯。

互動式shell:使用者可以建立一個僞tty終端,将其連接配接到stdin,為容器提供一個互動式的shell。