Linux By Walter

Chroot vs. Namespaces:容器技術的演進

容器的祖先

  • Chroot (Change Root):將進程的根目錄 / 限制在特定資料夾。這提供了檔案系統級別的隔離,但進程仍能看到系統所有的 Process 和 Network,隔離性不足。
  • Namespaces:Linux Kernel 的現代隔離機制。包含 PID (進程編號)、NET (網路堆疊)、MNT (掛載點)、UTS (主機名) 等。

Docker/Podman 的本質就是利用 Namespaces 進行資源隔離,並利用 Cgroups 進行資源限制。理解這一點,你就會明白為什麼容器不是虛擬機,以及為什麼 nsenter 指令可以讓你「進入」容器排查問題。