Container-Virtualisierung mit Docker

Die Container-Technik und das Cloud-Computing

von - 16.03.2015
In Diskussionen zum Thema Container-Technik und Docker weisen gerade IT-Profis, die bisher noch wenig Kontakt zu dieser Software hatten, immer wieder auf die Nähe beziehungsweise die Ähnlichkeiten zur normalen Virtualisierung hin. Aber eine Stärke dieser Technik liegt gerade in den Unterschieden zu gängigen Virtualisierungs-Techniken.
Virtualisierung versus Docker
Virtualisierung versus Docker: Während der Container die Anwendungen samt der entsprechenden Abhängigkeiten enthält, muss bei der Virtualisierung auch noch ein Gast-Betriebssystem mit eingeschlossen werden.
(Quelle: Docker Inc.)
Grundsätzlich ist die Funktionsweise der Container durchaus der eines modernen Hypervisors vergleichbar: Anwendungen werden gekapselt und voneinander isoliert. Aber gerade Entwickler scheuen häufig den hohen Aufwand, den das Erstellen und Anlegen einer kompletten virtuellen Maschine mit sich bringt: Schließlich muss hier ein komplettes Betriebssystem Teil dieser virtuellen Maschine sein, zusätzlich zu der gewünschten Anwendung und entsprechenden Bibliotheken und weiteren benötigten Ressourcen. Eine solche Virtualisierung basiert immer auf der Emulation einer virtuellen Hardware. Das bedingt natürlich einen gewissen Overhead.
Container basieren im Gegensatz dazu auf einem Betriebssystem, das sich mehrere Container teilen – einem „shared operating system“. Dadurch können sie mit sehr viel weniger Overhead arbeiten, sie arbeiten „lightweighted“. Bei ihnen wird keine Hardware emuliert, sondern die Anwendungen laufen in ihren Containern alle auf einem Linux-System.

Systemunabhängiger Einsatz

Damit sind Container im Gegensatz zu virtuellen Maschinen auch nicht dazu in der Lage, beispielsweise unterschiedliche Betriebssysteme wie einen Windows Server 2012 R2 und einen Red Hat Server auf einem Host-System zu betreiben – alle Container verwenden das gleiche Betriebssystem.
Im Idealfall können sie dabei auch die gleichen Laufzeitbibliotheken und weitere Ressourcen gemeinsam nutzen, was dann einen noch geringeren Overhead verursacht. Ein großer Vorteil dieser Tatsache: Administratoren können mit Hilfe dieser Technik ihre Server noch weitaus besser auslasten, als dies schon mit einer Virtualisierungs-Lösung der Fall ist. Zwar gehen die Schätzungen der Experten auseinander, aber die meisten Einschätzungen reden von der zwei- bis hin zur dreifachen Last, die ein Server mit Containern im Vergleich zu virtuellen Maschinen bewältigen kann.
Schließlich eigenen sich in Container gekapselte Anwendungen sehr gut für den Einsatz in einer Cloud-Umgebung. Einmal komplett erstellte Container können dann vom Administrator sowohl im eigenen Netzwerk als auch in der Private- oder einer Public-Cloud ausgerollt und eingesetzt werden.
Verwandte Themen