Unterschiedliche digitale Datenströme durch verschiedene 0-1-Werte symbolisiert
Cloud & Hosting

Docker und Virtual Machines im Vergleich

In der IT-Welt stehen sich im Bereich Virtualisierungsumgebungen zwei Größen gegenüber: Virtual Machines (VMs) auf der einen Seite sowie Docker und Docker-ähnliche Lösungen auf der anderen. VMs sind die Klassiker der Virtualisierung, während Docker mit der Containerisierung neue Wege beschreitet. Beide haben ihre Stärken und Schwächen, wie Sie im Folgenden erfahren.

Noch vor einigen Jahren waren virtuelle Maschinen (Virtual Machines, kurz: VM) dominierend in der Virtualisierung von Systemen und Anwendungen. Eine virtuelle Maschine simuliert alle Komponenten eines echten Computers. Hierzu gehören eine eigene Betriebssysteminstallation sowie die Hardware-Umgebung. Daher spricht man hier auch von der „Vollvirtualisierung“.

Inhaltsverzeichnis

Hypervisor und Virtualisierungsfunktionen

Eine Hypervisor-Software erstellt und verwaltet dabei alle virtuellen Maschinen auf einem Computer oder innerhalb einer Cloud. Sie bildet zugleich die Verbindung zwischen den Gast-Betriebssystemen und dem Host-Betriebssystem.
Die Virtualisierung über Docker hingegen läuft ohne Hypervisor. Das System nutzt die nativen Virtualisierungsfunktionen von Betriebssystemen. Unter Linux sind das beispielsweise die Cgroups- und Namespaces-Funktionen. So ist es möglich, dass selbst auf einer kleinen Plattform sehr viele Docker-Container gleichzeitig laufen können. Auch für den Einplatinencomputer Raspberry Pi gibt es daher bereits Docker-Umsetzungen. Sie unterstützen sogar die Verbindung mehrerer Raspberry Pi über einen sogenannten Docker-Schwarm.
Alle Container einer Plattform nutzen über die Docker Engine direkt das Host-Betriebssystem der Computerhardware. Nur das Netzwerk-Interface und das Dateisystem sind exklusiv. Man spricht daher bei Docker auch von einer Betriebssystemvirtualisierung. Denn aus Sicht der Anwendung virtualisiert sie nur das System.
Gut gelaunter Mann mit einem Headset vor einem Notebook.

Microsoft Azure: Back-up, SharePoint und Virtual Desktops

Sichern und archivieren Sie wertvolle Daten jetzt noch einfacher.

Mit Single-Sign-on für IT-Anwendungen und SharePoint-Integration stellen Sie Desktop-Anwendungen jetzt noch schneller bereit.

Und mit dem Azure Virtual Desktop konzentrieren Sie sich auf Strategie und Management – statt um die Verwaltung Ihrer Infrastruktur.

Vorteile von Virtual Machines gegenüber Docker

Auch wenn Docker viele Anforderungen im Entwicklungsbereich abdeckt, ist es für einige Anwendungsfälle sinnvoller, auf klassische Virtual Machines zu setzen. VMs bieten eine stärkere Sicherheitsisolation durch eigene Betriebssysteminstanzen, eignen sich dadurch besser für Legacy-Anwendungen und ermöglichen die Ausführung verschiedener Betriebssysteme. Sie greifen anders als Docker direkt auf Betriebssystemroutinen und Hardwareressourcen zu. VMs sind überall dort das Mittel der Wahl, wo es darum geht, spezifische Betriebssystemroutinen zu nutzen oder spezifische Hardwareumgebungen einzusetzen.

Vorteile von Docker gegenüber Virtual Machines

Bei der Installation mehrerer VM-Anwendungen spart Docker gegenüber dem Einsatz mehrerer klassischer Virtual Machines erheblich Speicherplatz. Grund dafür ist unter anderem, dass die Installation eines Gast-Betriebssystems bei Nutzung von Docker-Containern entfällt. Docker-Anwendungen verbrauchen somit nur unwesentlich mehr Systemleistung als nicht-virtuelle Anwendungen. Zugleich lassen sich Docker-Container sehr schnell auf andere Umgebungen übertragen. Auch das Anlegen eines neuen Containers erfolgt wesentlich zügiger als das Hochfahren einer VM. Besonders für die Softwareentwicklung bringt dies große Vorteile. Die gesamte Applikationsumgebung wird dabei über Container-Images zur Verfügung gestellt.
Docker ist zwar Vorreiter bei der Entwicklung gewesen, aber inzwischen nur ein Anbieter von vielen. Podman oder Kubernetes sind weitere Hersteller, die mit Docker vergleichbare Containerlösung anbieten, um Applikationen in Unternehmen zu verteilen.
Das Bild zeigt eine Hand unter einer symbolischen Wolke

Flexibel, skalierbar und sicher: Vodafone Cloud- und Hosting-Services

Sie suchen Cloud-Lösungen, die sich individuell und flexibel entsprechend Ihrer Business-Anforderungen anpassen lassen?

Bei der Sie bei Bedarf alle Services aus einer Hand erhalten und sich über Performance und Datensicherheit keine Gedanken machen müssen?

Gerne helfen wir Ihnen bei der Auswahl der passenden Cloud & Hosting Services für Ihr Unternehmen und unterstützen Sie mit Informationen, worauf es anderen Unternehmen bei der Auswahl eines passendens Cloud-Anbieters ankommt. 

Unterschiedliche Abstraktionsebenen für verschiedene Anwendungsgebiete

So sehr sich die Installationsweisen auch ähneln – intern arbeiten Docker und VM auf unterschiedlichen Abstraktionsebenen. Docker kommt zum Einsatz, um einzelne Anwendungen isoliert zu installieren, weiterzuentwickeln und als Image an andere Entwickler:innen weiterzugeben. Docker-Images sind klein und deshalb leicht zu verteilen.
VM simuliert hingegen eine komplette Hardware mit allen gegenseitigen Abhängigkeiten der einzelnen Programme und Betriebssystemkomponenten. Damit können Sie Installationen sogar auf andere Plattformen transferieren – beispielsweise eine Linux-VM über die Software Virtualbox auf einen Windows-Rechner.
Docker und VM haben somit ihre jeweiligen Einsatzgebiete, in denen sie gegenüber der anderen Lösung klar im Vorteil sind. Aber auch die Kombination beider Welten ist möglich, etwa in der Cloud. Sie können Docker beispielsweise auf einer virtuellen Maschine unter Linux ausführen, um darauf Docker-Container zu verwenden.
Vergleichsgrafik für virtuelle Maschinen und Docker-Container
Vergleichsgrafik für virtuelle Maschinen und Docker-Container

Unterschiede in der Praxis am Beispiel einer Webserver-Installation

Was im großen Maßstab für Unternehmen ganze IT-Abteilungen versorgt, funktioniert auch im Kleinen als lokale Installation hervorragend. Das Prinzip einer Docker-Installation im Vergleich zur Applikations-Installation auf einer Virtuellen Maschine zeigen wir am Beispiel einer Webserver-Einrichtung. Einen solchen Webserver können Sie beispielsweise intern nutzen, um darauf mit IoT-Devices aus Ihrem Unternehmen heraus zuzugreifen.

Vorgehensweise unter Docker

Applikationen installiert Docker über so genannte Images, aus denen es die Container hochfährt. Die Images der unterschiedlichsten Software stehen über Sammlungen zur Verfügung. Die größte öffentliche Sammlung ist der Docker-Hub unter hub.docker.com.
Zur Installation dieser Images brauchen Sie einen Rechner als Basisplattform: vom Windows-PC über Mac und Linux-Desktop bis hin zum Raspberry-System oder Thin-Client unterstützt Docker eine breite Palette an Plattformen. Auch ein gemieteter Linux-Server in der Cloud oder andere virtuelle Systeme sind eine gute Basis für Docker. Welche Systeme Docker unterstützt, ist im Download-Bereich des Herstellers auf docker.com gelistet.
Zur Webserver-Installation gibt es beispielsweis „nginx“, was einen Open Source Proxy-Server für HTTP, HTTPS, SMTP, POP3, und IMAP-Protokolle zur Verfügung stellt. Wenn Sie die entsprechende Zugriffsberechtigung für das System haben, können Sie den Webserver einfach über die Kommandozeile installieren. Unter Linux reicht beispielsweise aus:
curl –fsSL https://get.docker.com –o het-docker.sh
sudo sh./get-docker.sh
Wo curl nicht installiert ist, müssen Sie es über „apt install curl“ entsprechend einrichten.
Zukünftige Docker-Benutzer:innen sollen auch das Recht haben, Docker-Applikationen ohne zusätzliche Root-Berechtigung via sudo zu installieren. Als Admin genügt es, den Benutzer:innen dieses Recht einmalig zu erteilen:
„sudo usermod –aG docker $USER“.
Nach Installation der Docker-Basis müssen Sie nun das gesuchte Image installieren. Generell kann jede:r beliebigen Content auf die Docker-Plattform hochladen. Bei der Suche über docker.com sollten Sie daher nur trusted Content verwenden, also einen Haken bei „Docker Official Image“ setzen. Über die Suchmaske geben Sie für das genannte Beispiel „nginx“ ein, was direkt zur Anzeige der verfügbaren Images führt.
Über den Kommandozeilenbefehl „docker run –p 80:80 nginx“ starten Sie das entsprechende Image. In anderen Anwendungsfällen ersetzen Sie „nginx“ mit dem Namen des aufgelisteten Images. „80:80“ bewirkt die Weiterleitung des Ports 80 der Netzwerkkarte an den Docker-Container. Je nach Applikation kann es notwendig sein, dass Sie weitere Parameter einsetzen.
Der Server steht dann direkt unter der Webadresse des Rechners zur Verfügung. Die Adresse ermitteln Sie unter Linux beispielsweise über „ip a“. Durch die Tastenkombination STRG+C oder die Befehlszeile „docker stop nginx“ können Sie die Ausführung wieder beenden.

Vorgehensweise unter einer Virtuellen Maschine

Die Installation von Services auf einer Virtuellen Maschine unterscheidet sich nicht grundlegend von der Vorgehensweise auf einem physischen Computer. Zuerst richten Sie eine virtuelle Maschine ein – über den Cloud-Anbieter oder lokal beispielsweise mit VMware, VirtualBox, Microsoft Hyper-V oder einer anderen Lösung.
Anschließend richten Sie ein Betriebssystem ein. Zur besseren Vergleichbarkeit fällt die Wahl hierbei auch auf ein Linux-System (Debian) für die nginx-Webserver-Installation.
Über den Kommadozeilenbefehl „sudo apt install nginx –y“ können Sie Nginx installieren.
Den Webserver starten Sie mit: „sudo systemctl start nginx“. Dieser ist dann über die lokale IP-Adresse erreichbar – analog der Vorgehensweise bei Docker.
Geschäftsmann arbeitet an Notebook und Taschenrechner

Vodafone Connected Business

Sie möchten ein sicheres, effizientes und transparentes Unternehmensnetzwerk. Ein Netzwerk, bei dem alle Bausteine ineinander greifen? Kein Problem. Wir betreiben Ihre IT-Infrastruktur und Services. Sie konzentrieren sich auf Ihr Kerngeschäft. Wie das funktioniert? Wir kombinieren die innovative Cloud Technologie von Cisco Meraki mit dem professionellen Vodafone Business Service. Passend für kleine Unternehmen, den Mittelstand und Großunternehmen.

  • Security Appliance mit Firewall
  • WLAN
  • ...und vieles mehr

Docker vs. Virtual Machines: Das Wichtigste in Kürze

  • Virtual Machines (VM) simulieren im Gegensatz zu Docker komplette Hardwareumgebungen.
  • Docker ermöglicht es, einzelne Anwendungen isoliert zu installieren.
  • Docker bietet im Vergleich zu VMs schnellere Skalierbarkeit durch Containerorchestrierung.
  • Docker arbeitet ressourcenschonend und ist in vielen Fällen kosteneffizienter als entsprechende VM-Lösungen.
  • VMs haben gegenüber Docker-Containern langsamere Startzeiten.
  • VMs bieten überall dort Vorteile, wo es darum geht, vollständige Betriebssysteme oder Hardware und Peripherie abzubilden.
Das könnte Sie auch interessieren:
Cloud & Hosting
Serverraum mit zahlreichen Serverschränken in mehreren Reihen

Dedizierte Server und ihre Vorteile erklärt

Mit einem Umsatz von weltweit 600 Milliarden US-Dollar ist das Cloud-Computing inzwischen eine feste Größe in der IT-Welt. Eine besondere Form des Cloud-Computings bieten dedizierte Server. Für bestimmte Branchen und bestimmte Anwendungen sind diese Server nach wie vor unverzichtbar und auch nicht durch andere Formen des Cloud-Computings ersetzbar. Was sich genau hinter dem Begriff dedizierte Server verbirgt, was diese von anderen Cloud-Lösungen unterscheidet und wie dedizierte Server möglicherweise auch für Ihr Business wertvoll sein können, lesen sie hier.

Telefon

Digitalisierungs-Beratung

Sie haben Fragen zur Digitalisierung? Jetzt kostenlos beraten lassen. Montag-Freitag von 8-18 Uhr, außer an Feiertagen.

0800 505 4539

Hilfe und Service

Montag bis Freitag von 8 bis 20 Uhr, außer an Feiertagen.

0800 172 1234
Online
Vor Ort