Docker簡介
很多人都覺得 Docker是個新技術,其實不然,Docker 除了其開發語言用 go 比較新外,其實它還真不是個新東西,也就是個新瓶裝舊酒的東西,所謂的 The New 「Old Stuff」。
認識 Docker 軟體貨櫃技術
Docker 使用的 Linux 核心模組功能包括下列各項
- Namespace - 用來隔離不同 Container 的執行空間
- Cgroup - 用來分配硬體資源
- chroot - 針對正在運作的軟體行程和它的子行程,改變它外顯的根目錄
- Bridge (Network) - 建立虛擬網路,連接不同 Container
- AUFS/Overlay2(chroot) - 用來建立不同 Container 的檔案系統
Docker 安全防護
- Capability - 控制 root 帳戶的執行功能1
- Seccomp - Linux内核的安全計算模式(Seccomp) 功能
- AppArmor - 保護 Container 的網路及執行安全
- SELinux - Linux 的安全性增強模組
Docker 軟體貨櫃運作架構
- Docker Daemon 只負責 Container 的建立,啟動,停止,移除及監控
- Container 運作架構,是由 Linux 早已存在的核心模組 (Namespace, Cgroup, ..) 組成
- 所有 Container 因共用 Host OS 的系統核心,使之啟動與關閉非常快速
討論
討論1
Container 的執行資源 (CPU, Memory, Disk, Network) 需透過 Docker Daemon 處理嗎 ?
答:不需要,所以 Docker 軟體貨櫃不是虛擬系統
討論2
Container 所依附的 Host OS 可以是 Windows 或 MAC OS ?
答:可以的2
Note: 1) HyperKit currently only supports Mac OS X using the Hypervisor.framework. It is a core component of Docker For Mac. 2) Docker Toolbox : Available for both Windows and Mac, the Toolbox installs Docker Client, Machine, Compose and Kitematic (圖形管理工具).
留言