為什麼從 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-image | Docker Image、layer、OverlayFS、copy-on-write、whiteout |
| 04-namespaces | PID / Mount Namespace、clone / unshare / setns |
| 05-process-and-signal | Process 族譜、zombie / orphan、PID 1 init 責任、signal 行為 |
| 06-network | Container 網路:none / host / bridge、veth pair、iptables |
關聯閱讀#
- 容器編排 →
../08-kubernetes - 可觀測性 →
../09-observability - 微服務(容器化部署)→
../04-microservices - DevOps / CI/CD →
../05-devops