為什麼從 Linux 內核切入 Container#

很多人會用 Docker,但被問到「container 為什麼能隔離、為什麼有自己的 PID 1、為什麼 image 可以共用 layer」就答不出來。Container 不是黑盒子,是 Linux 內核三大機制 — Namespaces、cgroups、聯合檔案系統(Union FS)— 加上 runtime 工具的組合。本節依「Docker 實戰 6 堂課」的編排,從建立 container 起,一路拆解 image layer、namespaces、process 與 signal、網路通訊,把容器內部運作攤開來看。

全節 37 章對應書本 56 個實驗。內容以概念解釋 + 實驗目的 + 預期觀察為主;具體命令輸出請對照書本或自行於環境中驗證。

章節地圖#

Chapter範疇
01-environment實驗環境準備 + Mac Docker VM 觀察
02-creating-container建立 container、Host 上的程序對應
03-imageDocker Image、layer、OverlayFS、copy-on-write、whiteout
04-namespacesPID / Mount Namespace、clone / unshare / setns
05-process-and-signalProcess 族譜、zombie / orphan、PID 1 init 責任、signal 行為
06-networkContainer 網路:none / host / bridge、veth pair、iptables

關聯閱讀#