docker組件
- docker服務器和客戶端,也稱為docker引擎
- docker鏡像
- registry
- docker容器
C/S架構(gòu)
docker客戶端向服務端發(fā)送請求,也可以在同一臺機器上同時運行客戶端和服務端。
Registry
分為共有倉庫和私有倉庫,與GitHub類似
此外還可以假設自己的私有倉庫。
docker技術組件
- 一個原生的Linux容器格式,稱之為libcontainer
- Linux內(nèi)核的命名空間(namespace),用于隔離文件系統(tǒng)、進程和網(wǎng)絡
- 文件系統(tǒng)隔離:每個容器有各自的root文件系統(tǒng)
- 進程隔離:每個容器運行各自的進程環(huán)境
- 網(wǎng)絡隔離:容器間的虛擬網(wǎng)絡接口和IP地址都是分開的
- 資源隔離和分組:使用cgroups將CPU和內(nèi)存之類的資源獨立分配給每一個docker容器
- 寫時復制:文件系統(tǒng)都是通過寫時復制實現(xiàn)的,意味著系統(tǒng)是分層的、快速的,而且占用磁盤空間更小
- 日志:容器的STDOUT/STDERR/STDIN這些IO都會被記錄到日志中
- 監(jiān)護室shell:用戶可以創(chuàng)建一個偽tty終端,連接到STDIN,實現(xiàn)一個交互式的shell