> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baenninger.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Containerisierung

Containerisierung ist eine Technologie, die es ermöglicht, Anwendungen und deren Abhängigkeiten isoliert in Containern zu verpacken. Ein Container ist eine leichtgewichtige, portierbare und unabhängige Umgebung, in der eine Anwendung ausgeführt wird. Im Gegensatz zu virtuellen Maschinen (VMs) teilt ein Container denselben Kernel mit dem Host-Betriebssystem, was ihn sehr effizient und ressourcenschonend macht.

<Tabs>
  <Tab title="Leichtgewichtig">
    Container benötigen nur minimale Systemressourcen, da sie keine eigenes Betriebssystem starten müssen. Im Vergleich zu VMs benötigen sie weniger Ressourcen. Das führt besonders in der Cloud zu Kostensenkungen.
  </Tab>

  <Tab title="Portabel">
    Ein Container enthält alle Abhängigkeiten einer Anwendung, was bedeutet, dass er auf jedem System laufen kann, das von der Container-Engine unterstützt wird.
  </Tab>

  <Tab title="Isoliert">
    Jeder Container läuft isoliert von anderen Containern und vom Host-Betriebssystem. Dies verbessert die Sicherheit und verhindert, dass eine Anwendung Einfluss auf andere Anwendungen hat.
  </Tab>
</Tabs>

Container sind eine Schlüsseltechnologie für moderne IT-Umgebungen, insbesondere in [Microservices-Architekturen](https://www.redhat.com/en/topics/microservices/what-are-microservices) und [Cloud-Native](https://aws.amazon.com/what-is/cloud-native/)-Anwendungen. In Verbindung mit Orchestrierungstools wie [Kubernetes](https://kubernetes.io/) ermöglichen sie eine effiziente Verwaltung und Skalierung von Anwendungen. Container spielen auch eine zentrale Rolle in DevOps CI/CD-Pipelines, da sie eine konsistente Umgebung über Entwicklungs-, Test- und Produktionsphasen hinweg gewährleisten.

## Containerisierung vs. Virtualisierung

Der Hauptunterschied zwischen Containern und Virtualisierung liegt in der Art und Weise, wie sie Systemressourcen verwenden.

<Tabs>
  <Tab title="Virtuelle Maschinen">
    Virtuelle Maschinen (VMs) simulieren ein komplettes physisches System mit einem eigenen Betriebssystem. Jede VM benötigt eine eigene Instanz eines Betriebssystems und virtualisierte Hardware-Ressourcen.

    <Frame caption="Virtuelle Maschinen">
      <img src="https://mintcdn.com/levexis-38849a2b/Wa_zkryx5Qc1QyS0/images/content/container/image-2.png?fit=max&auto=format&n=Wa_zkryx5Qc1QyS0&q=85&s=17e09bf0f57f1f2ebe82a31a18b2d16b" alt="Virtuelle Maschinen" width="1827" height="1184" data-path="images/content/container/image-2.png" />
    </Frame>
  </Tab>

  <Tab title="Container">
    Container teilen sich den Kernel des Host-Betriebssystems, was sie sehr effizient macht. Sie enthalten nur die Anwendung und ihre Abhängigkeiten und sind dadurch deutlich kleiner und schneller als VMs.

    <Frame caption="Container">
      <img src="https://mintcdn.com/levexis-38849a2b/Wa_zkryx5Qc1QyS0/images/content/container/image-4.png?fit=max&auto=format&n=Wa_zkryx5Qc1QyS0&q=85&s=96ef02201bb8e639d89f4ed8e41e1416" alt="Container" width="1817" height="1186" data-path="images/content/container/image-4.png" />
    </Frame>
  </Tab>
</Tabs>

### Vorteile von Containern

<AccordionGroup>
  <Accordion title="Schnellere Startzeit">
    Container starten in Sekundenbruchteilen, während VMs Minuten benötigen können.
  </Accordion>

  <Accordion title="Geringerer Ressourcenverbrauch">
    Da Container den Kernel des Hosts nutzen, verbrauchen sie weniger RAM und CPU-Ressourcen.
  </Accordion>

  <Accordion title="Einfachere Verwaltung">
    Container-Images sind kleiner und lassen sich schneller übertragen und verteilen als VM-Images.
  </Accordion>

  <Accordion title="Höhere Dichte">
    Auf einem einzigen Host können viel mehr Container als VMs gleichzeitig laufen
  </Accordion>
</AccordionGroup>
