Definition Was sind Container?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Dr. Jürgen Ehneß

Container sind eine Virtualisierungstechnik im Computerumfeld, die Anwendungen inklusive ihrer Laufzeitumgebungen voneinander trennt. Im Gegensatz zu einer virtuellen Maschine beinhalten Container kein eigenes Betriebssystem, sondern verwenden das des Systems, auf dem sie installiert sind.

Anbieter zum Thema

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - Fotolia)

Container virtualisieren Anwendungen. Die Anwendungen sind strikt voneinander getrennt, obwohl sie auf demselben Rechner und Betriebssystem ausgeführt werden. Sie wissen gegenseitig nichts von ihrer Existenz und können nicht auf Daten anderer Container zugreifen.

Im Gegensatz zu klassischen virtuellen Maschinen emulieren Container kein eigenes Betriebssystem, sondern nutzen das des Host-Systems. Im Container sind alle zur Ausführung benötigten Dateien, Konfigurationen, Abhängigkeiten und Bibliotheken vorhanden. Es entsteht ein abgegrenztes Paket mit der Laufzeitumgebung der jeweiligen Applikation.

Das Format des Containers ist definiert und auf andere Host-Systeme leicht übertragbar. Entwickler können Anwendungen mit minimalem Aufwand zwischen unterschiedlichen Systemumgebungen verschieben. Sämtliche Informationen und Inhalte werden in der Regel innerhalb einer Datei transportiert.

Eine der bekanntesten Container-Lösungen ist Docker. Docker ist eine Open-Source-Software, die 2013 erstmals veröffentlicht wurde und die benötigten Funktionen zur Virtualisierung der Anwendungen und Isolierung der Container auf einem Host-System bereitstellt.

Abgrenzung von Containern zu virtuellen Maschinen (VMs)

Container lassen sich deutlich von virtuellen Maschinen (VMs) abgrenzen. Während eine virtuelle Maschine einen kompletten Rechner inklusive Betriebssystem und Anwendungen virtualisiert zur Verfügung stellt, besitzen Container kein Betriebssystem, sondern nutzen das des Host-Systems. Somit teilen sich mehrere Container dasselbe Betriebssystem und denselben Rechner. Lediglich die Anwendungen mit ihren Daten und Laufzeitumgebungen sind virtualisiert und voneinander getrennt.

Für jede Anwendung stellt der Container eine isolierte Umgebung zur Verfügung. Im Vergleich zu virtuellen Maschinen benötigen Container weniger Arbeitsspeicher, CPU-Leistung und Speicherplatz. Da in den Containern nicht die kompletten Daten und Informationen der Betriebssysteme zu speichern sind, sind sie deutlich schlanker. Es lassen sich auf einem einzigen physischen Rechner wesentlich mehr Container als VMs realisieren. Auch das Starten des Containers ist in der Regel schneller abgeschlossen als das Starten einer VM.

Vor- und Nachteile von Containern

Als Vorteile der Container-Virtualisierung lassen sich aufführen:

  • geringerer Ressourcenbedarf und Overhead als virtuelle Maschinen,
  • schnelles Starten und Ausführen der Container,
  • sichere Trennung der Anwendungen in verschiedenen Containern,
  • schnelles und einfaches Verschieben kompletter Anwendungen inklusive ihrer Laufzeitumgebungen auf andere Systeme,
  • gute Skalierbarkeit und einfache Anpassung der Kapazitäten an die Anforderungen der Anwendung,
  • große, über mehrere Rechner verteilte Container-Setups realisierbar.

Neben den Vorteilen bringen Container einige Nachteile mit sich. Diese sind:

  • Container auf einem Host-System müssen das gleiche Betriebssystem nutzen,
  • geringere Virtualisierungstiefe im Vergleich zur virtuellen Maschine,
  • Kompatibilitätsprobleme der Anwendungen mit dem Betriebssystem sind schwerer zu lösen; Lösungen haben eventuell Einfluss auf andere Container auf dem System,
  • Softwarefehler oder Sicherheitslücken können sich auf alle Container und das komplette Betriebssystem auswirken.

(ID:45824327)