Docker bringt das Konzept der Apps auf den Server. Ein Docker-Container enthält eine Anwendung, aber auch alle Ressourcen, die diese zur Laufzeit benötigt. Seine Vorteile kann Docker besonders gut in Cluster-Umgebungen und Rechenzentren entfalten.
Docker hat den Begriff Container als Alternative zu virtuellen Maschinen überhaupt erst populär gemacht.
(Bild: Docker, Inc.)
In einem kurzen Wort ist Docker eine Form der Anwendungsvirtualisierung. Die Technik dahinter heißt Containerisierung. Docker ist eine Implementierung der Container-Technologie, die sich durch besonders benutzerfreundliche Eigenschaften auszeichnet und den Begriff Container als Alternative zu virtuellen Maschinen überhaupt erst populär gemacht hat.
eBook „Container-Orchestrierung“
(Bild: Dev-Insider)
E-Book zum Thema
Unser eBook „Container-Orchestrierung“ befasst sich mit den Container-Cluster-Managern Docker Swarm, Kubernetes und Mesosphere.
Ein Container fasst eine einzelne Anwendung mitsamt aller Abhängigkeiten wie Bibliotheken, Hilfsprogrammen und statischer Daten in einer Image-Datei zusammen, ohne aber ein komplettes Betriebssystem zu beinhalten. Daher lassen sich Container mit einer leichtgewichtigen Virtualisierung vergleichen.
Wesentliche Eigenschaften und Vorteile von Containern
Container benötigen weniger Ressourcen als virtuelle Maschinen, da sie auf das Starten eines eigenen Betriebssystems verzichten und stattdessen im Kontext des Host-Betriebssystems laufen. Trotzdem sind die Container gegeneinander und vom Host-System abgeschottet, wenn auch nicht so stark, wie bei einer Virtualisierung. Möglich machen das mehrere Linux Features, unter anderem Namespaces und Cgroups.
Docker-Container werden aus einem Container-Image gestartet, das als einfache Datei leicht von einem System auf ein anderes übertragbar ist. Installation, Update und Deinstallation einer Software reduziert sich daher auf einen einfachen Kopiervorgang beziehungsweise eine einzelne Dateilöschung.
Aus einem Docker-Image heraus lassen sich beliebig viele Container starten, da Schreibzugriffe nicht auf das Container-Image wirken, sondern jeweils auf ein eigenes Dateisystem, das dem Image überlagert ist. Für viele Anwendungen können fertige Container-Images vom Docker-Hub heruntergeladen und unmittelbar gestartet werden. Die Konfiguration ist so weit wie möglich bereits im Image eingerichtet. Variable Teile, wie die Netzwerkkonfiguration, werden beim Start automatisch angelegt.
Ein bedeutender Vorteil der Docker-Container ist die gute Skalierbarkeit. Werden zusätzliche Instanzen einer Anwendung benötigt, dann können einfach neue Container gestartet werden, und nach dem Stoppen sind sie wieder vollständig aus dem System verschwunden. Die Verwaltung einer größeren Anzahl von Containern erleichtern Werkzeuge für die Container-Orchestrierung, zum Beispiel Google Kubernetes.
Mit Linux Namespaces lassen sich seit Kernel-Version 2.4.19 einzelne Prozesse in einen vorgegebenen Unterbereich des Dateisystems einsperren. Das ähnelt einem klassischen Change Root, bei dem ein Prozess über den Systemaufruf chroot das für ihn selbst sichtbare Dateisystem auf einen Unterbaum des Gesamtsystems beschränkt. In späteren Versionen wurde das Namespace-Konzept auf weitere Ressourcen erweitert.
In der Linux-Kernel-Version 4.10 sind die zusätzlichen Namespaces Prozess-ID (PID), Netzwerk, Interprozess-Kommunikation (IPC), Host- und Domainnamen (UTS) und User-ID (UID) nutzbar. Jeder Namespace verwaltet einen eigenen Satz der entsprechenden Ressource, unabhängig vom Hauptsystem. Dadurch ist es zum Beispiel möglich, dass der Superuser root im Container mit der gewohnten UID 0 erscheint, im Hauptsystem aber eine unprivilegierte UID hat.
Linux Cgroups bieten eine ähnliche Funktionalität wie Namespaces, indem sie die verfügbaren Ressourcen für bestimmte Prozesse einschränken, beispielsweise den Hauptspeicher. Sie wirken aber auf Gruppen von Prozessen und ermöglichen darüber hinaus eine separate Berechnung des Ressourcenverbrauchs innerhalb der jeweiligen Gruppe, sowie das gemeinsame Einfrieren und Aufwecken der Prozesse.
Mit Linux Namespaces und Cgroups lassen sich wesentliche Eigenschaften eines Linux-Betriebssystems innerhalb eines Containers emulieren. Für die im Container laufende Software wirkt er daher wie ein eigenständiges System, ohne dass eine vollständige Virtualisierung nötig wäre.
Nachteile der Containerisierung
Der Verzicht auf den Einschluss eines Betriebssystems in den Inhalt der Container-Images bedeutet eine gegenüber der Virtualisierung reduzierte Abschottung. Ähnliches trifft aber ebenfalls auf die Virtualisierung zu, die eine schwächere Trennung gegenüber jeweils eigenen, dedizierten Servern bietet.
Gleichzeitig kann der Verzicht auf ein komplettes Betriebssystem im Container aber auch eine höhere Sicherheit bieten, da ausschließlich die Software vorhanden sein muss, die von der Anwendung im Container benötigt wird. Das reduziert die Anzahl generischer Werkzeuge des Betriebssystems, die ein Angreifer ausnützen könnte.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Docker auf anderen Systemen als Linux
Docker ist zwar im Linux-Umfeld entstanden und entsprechend fokussiert sich die Beschreibung in diesem Text auf Linux-Betriebssysteme. Docker-Container lassen sich mittlerweile aber ebenfalls unter Mac OS und Windows nutzen, in Windows 10 beispielsweise auch nativ über Hyper-V.
Container haben die DevOps-Idee revolutioniert. Dazu bedarf es eines Container-Clusters nebst zugehöriger Verwaltungsinstrumente. Wir nehmen den Platzhirsch Kubernetes und seine direkten Konkurrenten genauer unter die Lupe.