Container

Grundlagen von Containern

Definition und Konzept von Containern

Container sind eine Methode zur Virtualisierung auf Betriebssystemebene, bei der Anwendungen und ihre Abhängigkeiten in einem isolierten Prozess ausgeführt werden. Dies ermöglicht es, Anwendungen unabhängig von der zugrunde liegenden Infrastruktur bereitzustellen und auszuführen. Obwohl das Konzept der Containerisierung und Prozessisolierung schon seit vielen Jahrzehnten existiert, wurde die Verbreitung dieser Technologie erst durch das Erscheinen der quelloffenen DockerEngine im Jahr 2013 beschleunigt. DockerEngine hat sich als Industriestandard etabliert und bietet einfache Entwicklertools sowie einen universellen Ansatz für das Verpacken von Containern. 1

Funktionen von Containern

Bei herkömmlichen Methoden wird der Code in einer spezifischen Computerumgebung entwickelt. Wenn dieser Code in eine andere Umgebung übertragen wird, können dabei Fehler und Defizite auftreten. Ein Beispiel dafür ist die Übertragung von Code von einem Desktop-Computer auf eine virtuelle Maschine oder von einem Linux- auf ein Windows-Betriebssystem. Containerisierung löst dieses Problem, indem sie den Anwendungscode gemeinsam mit den entsprechenden Konfigurationsdateien, Bibliotheken und Abhängigkeiten bündelt, die für die Ausführung benötigt werden. Sie bieten daher eine Hohe Unabhängigkeit von ihrer Ausführungsausgebung. Dies geschieht auf ähnliche Weise wie bei VMs. Allerdings unterscheiden sie sich von VMs dadurch, dass sie keinen eigenen Satz von Betriebssystem und Anwendung mitbringen. Stattdessen teilen sich mehrere Container einen gemeinsamen Betriebssystemkern. Jede Anwendung erhält lediglich ihren eigen Benutzerbereich (User Space), wodurch eine vollständig isolierte Umgebung geschaffen wird. In Abbildung 1 ist der Aufbau von VMs im Vergleich zu Containern dargestellt, um diese Unterschiede besser zu verdeutlichen.1

Vergleich VMs und Container FUnktionsweise

Vor- und Nachteile von Containern

Im Unterschied zu virtuellen Servern erweisen sich Container als äußerst ressourcensparend. Anstatt ein vollständiges Betriebssystem zu installieren, werden Container über Images bereitgestellt und teilen sich den Kernel des Betriebssystems. Dadurch sind sie erheblich kleiner und kompakter als virtuelle Server. Ihr geringes Gewicht sorgt zudem für eine höhere Servereffizienz2 Diese Isolation der Anwendung sorgt zudem für eine höhere Sicherheit, da von vornherein verhindert wird, dass bösartiger Code in andere Container oder das Hostsystem von der Anwendung heraus eindringen kann. 3 Ein weiterer Vorteil ist, dass ein Container nicht von einem Host-Betriebssystem abhängig oder daran gebunden ist und hierdurch ein Container sehr portabel ist. Er kann konsistent und einheitlich über jede Plattform oder Cloud ausgeführt werden. 4 Darüber hinaus sind Container sehr skalierbar, da man bei steigendem Workload mehrere Container horizontal schnell erstellen und bereitstellen kann. Durch ihre schnelle Bereitstellung und Flexibilität sind sie äußerst gut auch für Microservices geeignet. Durch eine Architektur mittels Containern kann zudem das gleichmäßige Verteilen der Arbeitsbelastung, also das Load Balancing, erleichtert werden.

Die Container-Technologie birgt jedoch auch einige Nachteile, die bei ihrer Implementierung in Betracht gezogen werden müssen. Ein primärer Nachteil liegt in den Sicherheitsproblemen. Da Container in den meisten Fällen einen gemeinsamen Kernel nutzen, besteht die Gefahr, dass ein Angriff auf einen Container auf dem Host-System die Kompromittierung mehrerer Container zur Folge hat. Im Gegensatz dazu verwenden VMs jeweils ein eigenes Betriebssystem, was das Risiko mindert. Währned Container die Flexibilität von Anwendungen erhöhen, steigern sie auch die Komplexität. So müssen die Container orchestriert überwacht und gesichert werden. Gerade bei komplexen Anwendungen kann dies zu einem Problem werden. 2

Weiter zu Cloud


  1. IBM (2020): Containers in the enterprise: Rapid enterprise adoption continues. In: url: https://www.ibm.com/downloads/cas/VG8KRPRM (Abruf: 04. 07. 2023). 

  2. vgl. Joos, T./Donner, A. (2019): Die 10 wichtigsten Vor- und Nachteile von Docker-Containern. Hrsg. von IP Insider. url: https://www.ip-insider.de/die-10-wichtigsten-vor-und-nachteile-von-docker-containern-a-844230/ (Abruf: 04. 07. 2023). 

  3. vgl. IBM (2023): Was ist Containerisierung? url: https://www.ibm.com/de-de/topics/containerization (Abruf: 04. 07. 2023). 

  4. vgl. Veritas, Hrsg. (2022): Was ist Containerisierung? Welche Vorteile hat sie? url: https://www.veritas.com/de/de/information-center/containerization (Abruf: 05. 07. 2023).