Alle Welt redet von Containern. Doch die gute, alte virtuelle Maschine kann in manchen Anwendungsszenarien durchaus ihre Vorteile haben. Deshalb sollten beide Lösungen gegeneinander abgewogen werden.
Virtuelle Maschinen leisten in einigen Bereichen weiterhin bessere Dienste als Container.
Container, ganz egal ob Docker, Kubernetes oder Linux-Containers sind in der Softwareentwicklung kaum noch wegzudenken. Kein Wunder, liefern sie doch schlanke Laufzeitpakete, um Anwendungen schlank, portabel und skalierbar zu halten, ohne auf bestimmte Basissysteme angewiesen zu sein.
Container tragen nicht umsonst diesen Namen: Gestapelt auf dem Deck des Frachters „Container-Engine“ können sie problemlos auf ein anderes Schiff umgeladen, per USB-Stick oder Internet „verfrachtet“, aufgestockt oder irgendwo gelagert werden – wie echte Container eben. Der Preis für diese Flexibilität ist der Verzicht auf eigene Trägersysteme. Genau hier kommen Virtuelle Maschinen ins Spiel.
Virtuelle Maschinen: Der Rechner im Rechner
Virtuelle Maschinen mit Programmen wie VMware, Parallels, VirtualBox oder Windows Hyper-V bringen nämlich vollständiges Rüstzeug mit. Ein vollwertiges Betriebssystem läuft hier auf einem vollwertigen virtuellen PC, der mittels Hypervisor und Virtualization Software auf einem Gastgeber-System arbeitet, komplett mit CPU, RAM, Grafik- und Netzwerkadaptern sowie Schnittstellen.
Das bedeutet im Umkehrschluss viel Ballast. Virtuelle Maschinen sind je nach Betriebssystem-Basis mehrere Gigabyte groß, selbst wenn hier nur einfachste Anwendungen laufen sollen. Um beim nautischen Bild zu bleiben, gleichen sie einzelnen Kreuzern in einem Flottenverband, dessen Ressourcen sie verwenden.
VMs können Vorteile gegenüber Containern haben
Auf den ersten Blick sind VMs gegenüber Containern ressourcenintensiv und komplex. Deshalb liegt die Frage nahe, warum sie statt eines Containers zum Einsatz kommen sollten. Die Antwort ist einfach: Container sind für paketierte Mikroservices, wie sie etwa bei Cloud-Anwendungen zum Einsatz kommen. Sie sind im Rahmen des DevOps-Gedankens sinnvolle Ressourcensparer und dabei im Rahmen ihrer Möglichkeiten frei skalierbar.
Was sie jedoch nicht können, ist Anwendungen vollständig vom Gastgeber-System zu befreien. Sie benötigen immer eine Arbeitsgrundlage in Form eines kompatiblen Betriebssystems. Anders virtuelle Maschinen, die es erlauben es, Anwendungen komplett vom Gastgeber-System zu isolieren – und das schafft eine Reihe praktischer Anwendungsbereiche, auch für Software-Entwickler.
Wo virtuelle Maschinen der Containerisierung überlegen sind
Virtuelle Maschinen eignen sich daher bestens für Anwendungen, in denen es vor allem darauf ankommt, dass das System sicher ist. So lässt sich ein Webserver mit virtuellen Maschinen in sogenannte vServer aufteilen, die ihrerseits für den User wie eigene Server wirken. Oder eine VM bildet eine riskante Umgebung nach, etwa wenn es um kritische Weiterentwicklung kundenbasierter Systeme geht.
Natürlich erlauben VMs auch den Weiterbetrieb von Legacy-Software auf moderner Infrastruktur oder simulieren gar ganze Netzwerkumgebungen, sofern der Host-Rechner entsprechende Ressourcen hat. Interessant für die Softwareentwicklung ist dabei, dass sich die VM an jedem Punkt wie ein echter Rechner verhält – mit den gegebenen Betriebssystem-Funktionen, eigenen Ressourcen und allem Drum und Dran. Dieser kann zum Beispiel auch als mächtige „Sandbox“ für Anwendungen dienen.
Was sind prozessbasierte VMs?
Doch es muss nicht immer der ganze virtuelle PC sein: Von virtuellen Maschinen ist auch bei „Virtual Machines“ wie Java oder .NET die Rede, obwohl diese keinen ganzen PC replizieren, sondern nur die für den Betrieb einer Anwendung benötigten Runtimes zur Verfügung stellen.
Die Vorteile dieser „prozessbasierten Virtual Machines“ liegen auf der Hand, erlauben sie doch die plattformunabhängige und isolierte Ausführung von Anwendungen in einer immer gleichen Umgebung. Die Runtime liefert das nötige Rüstzeug, ist für die Vermittlung zwischen Anwendung und Betriebssystem notwendig und muss dementsprechend für alle gewünschten Betriebssysteme vorliegen.
Sandboxed-Anwendungen als einfache Alternative
Derartige VMs sind allerdings nicht die einzige „Zwischenform“, um leichtgewichtige VMs zu verwenden. Sogenannte Sandboxed-VMs verbinden die Vorteile von VMs und Containern. So bietet Windows seit Windows 10 eine „leichte" Sandboxed-Umgebung als optionales Windows-Feature.
Dazu wird innerhalb des Betriebssystems eine leichtgewichtige VM als „Untersystem“ des regulären Windows-Betriebssystems erstellt, die sich für Testzwecke eignet. Der Hypervisor muss dazu nicht aktiviert werden, es handelt sich auch insofern nicht um eine „echte“ VM, weil die Sandbox-Umgebung bei jedem Start neu erstellt wird und damit „jungfräulich“ ist.
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.
Diese Variante eignet sich hervorragend, um Software auf einem Host-System zu testen, ohne aufwändig mit VMs herumzuhantieren. Auch Linux-User können eine entsprechende Technologie verwenden, die Software Firejail eignet sich hervorragend für das Testing unter Linux-Systemen. Mac-Nutzer müssen leider auf dedizierte Virtualisierungslösungen ausweichen, allerdings besitzt das System selbst eine App-Sandbox.
VMs können auch containern
VMs schließen den Einsatz von Container-Runtimes selbstredend auch nicht aus. Da sich ein virtueller PC wie ein echter PC verhält, spricht nichts dagegen, diesen als Sandbox für Container-Anwendungen zu verwenden beziehungsweise diese dort zu installieren.
Die gängigen Virtualisierungstools können überdies den Hypervisor „durchreichen“, sprich eine Virtualisierung in der Virtualisierung erlauben. Auch umgekehrt ist der Einsatz möglich: So gibt es ein Docker-Image mit VirtualBox, das allerdings voraussetzt, dass die Software auf dem Host-System installiert ist.
Virtualisierung oder Container: Was ist besser?
Obwohl High-Level-Container wie Docker im Hinblick auf die Cloud und DevOps sicherlich die beste Wahl sind, kann es sinnvoll sein, auch an Virtualisierungslösungen zu denken. Obwohl auf den ersten Blick technisch vergleichbar, unterscheiden sich die Lösungen in ihrem Anwendungszweck deutlich.
Während Container als reine Softwareschicht für den Einsatz auf Infrastruktur wie Server-Farmen und Clouds bestens sind, bieten sich virtuelle Maschinen immer dann an, wenn ein vollwertiges Betriebssystem für eine Anwendung benötigt wird. Egal ob Webserver, Test-Umgebung, Entwicklung auf Fremd-Betriebssystemen oder der Weiterbetrieb von Legacy-Software: In all diesen Fällen ist Virtualisierung die bessere oder sogar einzige Lösung.