bk99.de entertain the web since 1997

Linux-Container in 500 Zeilen Code

Zusammenfassung

Liz Rice baut einen kleinen Container in Go und macht Namespaces, Cgroups, Root-Dateisystem und Prozessstart direkt im Code sichtbar.

Ideen

  • clone startet einen Prozess in neuen Linux-Namespaces.
  • UTS- und PID-Namespaces trennen Hostnamen und Prozessnummern.
  • Ein eigenes Root-Dateisystem begrenzt die sichtbare Dateihierarchie.
  • Cgroups beschränken Ressourcen außerhalb des isolierten Prozessbaums.

Einsichten

  • Container entstehen aus mehreren Kernelmechanismen, nicht aus einer einzelnen Containerfunktion.
  • Isolation und Ressourcenbegrenzung lösen unterschiedliche Probleme.
  • Kurzer Lehrcode zeigt Vertrauensgrenzen deutlicher als umfangreiche Produktionswerkzeuge.

Fakten

  • Das Beispiel umfasst ungefähr 500 Zeilen Go.
  • Es verwendet Linux-spezifische Systemaufrufe.
  • Ein Container teilt den Kernel mit seinem Host.

Empfehlungen

  • Führe den Lehrcontainer nur auf einem entbehrlichen Testsystem aus.
  • Prüfe Namespaces, Capabilities und Cgroups als getrennte Schutzschichten.

Referenzen

Originalartikel lesen →