Mobile-Menu

Open-Source für Container Was ist Docker?

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

Docker ist eine Open-Source-Software, mit der sich Container zur Virtualisierung von Anwendungen erstellen und betreiben lassen. Auf einem Linux-, Windows- oder macOS-basierten Host-System werden mit der Software Laufzeitumgebungen zur Ausführung voneinander isolierter Anwendungen bereitgestellt, ohne dass die Virtualisierung des kompletten Betriebssystems notwendig ist.

Anbieter zum Thema

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

Bei Docker handelt es sich um eine frei verfügbare Software zur Realisierung von Containerlösungen. Sie hat sich im Umfeld containerbasierter Anwendungen etabliert und ist eine der beliebtesten Lösungen in diesem Bereich.

Die Software stellt alle notwendigen Funktionen bereit, um Anwendungen zu virtualisieren und die voneinander isolierten Container auf einem Host-System zu betreiben. Ein Container enthält alle benötigten Ressourcen zur Ausführung einer Anwendung inklusive des Anwendungscodes, der Laufzeitumgebung, der Systembibliotheken und der Systemwerkzeuge.

Container lassen sich als Dateien speichern und auf andere Systeme übertragen. Die zentrale Komponente auf dem Host-System bildet die Docker-Engine, welche die Ressourcen des Rechners den einzelnen Containern zuweist und für die Isolierung der Anwendungen in ihren Laufzeitumgebungen sorgt. Container lassen sich auf eigenen Rechnern oder mithilfe von Cloud-Services bereitstellen.

Die erste Version der Software erschien im Jahr 2013. Programmiert ist die Software mit der Programmiersprache Go. Die Betriebssysteme Linux, Windows und macOS werden unterstützt. Zur Verwaltung einer Vielzahl gleichzeitig zu betreibender Container in verteilten Umgebungen ist die Orchestrierungslösung Kubernetes einsetzbar.

Das prinzipielle Containerkonzept

Das Containerkonzept ist eine Virtualisierungstechnik, die Anwendungen auf einem Host-System voneinander isoliert. Im Vergleich zu virtuellen Maschinen werden nicht komplette Rechner inklusive Betriebssystem virtualisiert, sondern nur die zur Ausführung der Anwendungen benötigten Laufzeitumgebungen mit ihren Ressourcen wie Anwendungscode, Bibliotheken oder Konfigurationen. Das Containerformat ist genau definiert. Container inklusive ihrer Anwendungen und Laufzeitumgebung lassen sich in Form einer Datei leicht auf andere Host-Systeme übertragen.

Funktionsweise

Die zentrale Komponente zur Containervirtualisierung ist die Docker-Engine. Sie bildet die Schnittstelle zwischen den einzelnen Containern eines Hosts und dessen Ressourcen. Um Container auf einem System zu nutzen, muss die Engine installiert sein. Zur Isolation der Prozesse kommen innerhalb eines Linux-Kernels Funktionen wie namespaces und cgroups zum Einsatz.

Das Bereitstellungsmodell der Anwendungen basiert auf Images. Bei einem Image handelt es sich um ein Speicherabbild eines Containers, das aus mehreren Layern besteht und unveränderlich ist. Das Image ist als Datei portabel und auf verschiedenen Systemen nutzbar. Eine aktive Instanz eines Images wird als „Container“ bezeichnet. Aus einem einzigen Image können beliebig viele Container gestartet werden.

Vorteile der Containerisierung mit Docker

Die Containerisierung mit der frei verfügbaren Software bietet zahlreiche Vorteile. Sie benötigt weniger Ressourcen als virtuelle Maschinen, schottet die Anwendungen aber dennoch sicher untereinander und vom Host-System ab. Ein Container lässt sich in Form einer Image-Datei einfach auf andere Systeme übertragen. Es ist keine neue Installation der Anwendung und ihrer Laufzeitumgebung notwendig. Weitere Vorteile sind:

  • die gute Skalierbarkeit durch die Nutzung vieler weiterer Container,
  • die einfache Verwaltung vieler Container über Orchestrierungs-Tools wie Kubernetes,
  • das schnelles Starten von Containern.

(ID:46184989)