containerization

Containerisierung ist eine Form der Softwareverpackung, die den Code, die Bibliotheken und die Abhängigkeiten einer Anwendung in einer einzigen Einheit bündelt und so eine konsistente Ausführung in verschiedenen Umgebungen gewährleistet.

Containerisierung isoliert Anwendungen von der zugrunde liegenden Infrastruktur und ermöglicht es ihnen, unabhängig von ihrem Einsatzort konsistent ausgeführt zu werden. Dies wird durch die Verwendung von Containern erreicht, die leichte, eigenständige und ausführbare Softwarepakete sind. Container enthalten alles, was zum Ausführen einer Anwendung benötigt wird: Code, Laufzeitumgebung, Systemwerkzeuge, Systembibliotheken und Einstellungen. Dieser Ansatz steht im Gegensatz zu herkömmlichen virtuellen Maschinen, die das gesamte Betriebssystem virtualisieren, wodurch Container effizienter und portabler sind.

Containerisierung fördert Portabilität, Skalierbarkeit und Ressourceneffizienz. Sie vereinfacht die Bereitstellung und Verwaltung von Anwendungen und erleichtert deren Verschiebung zwischen verschiedenen Umgebungen wie Entwicklung, Tests und Produktion. Container-Orchestrierungstools wie Kubernetes automatisieren die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen weiter.

        graph LR
  Center["containerization"]:::main
  Rel_cloud_computing["cloud-computing"]:::related -.-> Center
  click Rel_cloud_computing "/terms/cloud-computing"
  Rel_serverless["serverless"]:::related -.-> Center
  click Rel_serverless "/terms/serverless"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Wissenstest

1 / 3

🧒 Erkläre es wie einem 5-Jährigen

Es ist, als ob man sein Spielzeug und alle dazugehörigen Anleitungen in eine spezielle Kiste packt, damit man es leicht in jedes Zimmer bringen kann und es dort genau gleich funktioniert, ohne anderes Spielzeug durcheinanderzubringen.

🤓 Expert Deep Dive

Containerisierung nutzt OS-Level-Virtualisierungsfunktionen, hauptsächlich Namespaces für die Isolierung (z. B. PID, Netzwerk, Mount, Benutzer) und Control Groups (cgroups) für die Ressourcenbegrenzung (CPU, Speicher, I/O). Dies steht im starken Gegensatz zur Hardware-Virtualisierung, die von VMs verwendet wird und aufgrund der Emulation von Hardware und der Ausführung separater OS-[Kernel](/de/terms/os-kernel) einen erheblichen Overhead verursacht. Container-Laufzeitumgebungen wie containerd und CRI-O (oft von übergeordneten Orchestratoren wie Kubernetes verwaltet) interagieren mit dem Kernel des Host-Betriebssystems, um den Lebenszyklus von Containern zu verwalten. Sicherheit ist ein kritischer Aspekt, da Container den Host-Kernel gemeinsam nutzen; Schwachstellen im Kernel oder unsachgemäße Isolationskonfigurationen können die Sicherheit beeinträchtigen. Technologien wie SELinux und AppArmor bieten zusätzliche Sicherheitsebenen. Die ephemere Natur von Containern erfordert auch robuste Strategien für persistente Speicherung und Zustandsverwaltung, die oft externe Volumes oder spezielle Speicher-Treiber beinhalten.

📚 Quellen