Freigeben über


Container im Vergleich zu virtuellen Computern

Gilt für: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

In diesem Thema werden einige der wichtigsten Ähnlichkeiten und Unterschiede zwischen Containern und virtuellen Computern (VMs) und wann Sie diese verwenden möchten, erläutert. Container und VMs verfügen über ihre Verwendung– in der Tat verwenden viele Bereitstellungen von Containern VMs als Hostbetriebssystem, anstatt direkt auf der Hardware auszuführen, insbesondere bei der Ausführung von Containern in der Cloud.

Eine Übersicht über Container finden Sie unter Windows und Container.

Containerarchitektur

Ein Container ist ein isoliertes, einfaches Silo zum Ausführen einer Anwendung auf dem Hostbetriebssystem. Container bauen auf dem Kernel des Hostbetriebssystems auf (der als begrabene Sanitäranlage des Betriebssystems betrachtet werden kann) und enthalten nur Apps und einige einfache Betriebssystem-APIs und -Dienste, die im Benutzermodus ausgeführt werden, wie in diesem Diagramm dargestellt.

Architekturdiagramm, das zeigt, wie Container auf dem Kernel laufen

Architektur virtueller Computer

Im Gegensatz zu Containern führen VMs ein vollständiges Betriebssystem aus, einschließlich eines eigenen Kernels, wie in diesem Diagramm dargestellt.

Architekturdiagramm, das zeigt, wie VMs neben dem Hostbetriebssystem ein vollständiges Betriebssystem ausführen

Container im Vergleich zu virtuellen Computern

Die folgende Tabelle zeigt einige der Ähnlichkeiten und Unterschiede dieser ergänzenden Technologien.

Merkmal Virtuelle Maschine Behälter
Isolation Stellt eine vollständige Isolierung vom Hostbetriebssystem und anderen virtuellen Computern bereit. Dies ist nützlich, wenn eine starke Sicherheitsgrenze kritisch ist, z. B. das Hosten von Apps von konkurrierenden Unternehmen auf demselben Server oder Cluster. Stellt in der Regel eine einfache Isolierung vom Host und anderen Containern bereit, bietet jedoch keine so starke Sicherheitsgrenze wie eine VM. (Sie können die Sicherheit erhöhen, indem Sie Hyper-V Isolationsmodus verwenden, um jeden Container in einer einfachen VM zu isolieren).
Betriebssystem Führt ein vollständiges Betriebssystem einschließlich des Kernels aus, wodurch mehr Systemressourcen (CPU, Arbeitsspeicher und Speicher) erforderlich sind. Führt den Benutzermodusteil eines Betriebssystems aus und kann so angepasst werden, dass nur die benötigten Dienste für Ihre App mit weniger Systemressourcen enthalten sind.
Gastkompatibilität Führt ungefähr jedes Betriebssystem innerhalb des virtuellen Computers aus. Wird auf der gleichen Betriebssystemversion wie der Host ausgeführt (Hyper-V Isolation ermöglicht es Ihnen, frühere Versionen desselben Betriebssystems in einer einfachen VM-Umgebung auszuführen).
Einsatz Bereitstellen einzelner VMs mithilfe von Windows Admin Center oder Hyper-V Manager; Bereitstellen mehrerer VMs mithilfe von PowerShell oder System Center Virtual Machine Manager. Bereitstellen einzelner Container mithilfe von Docker über die Befehlszeile; Bereitstellen mehrerer Container mithilfe eines Orchestrators wie Azure Kubernetes Service.
Betriebssystemupdates und -upgrades Laden Sie Betriebssystemupdates auf jeder VM herunter, und installieren Sie sie. Die Installation einer neuen Betriebssystemversion erfordert ein Upgrade oder häufig nur das Erstellen einer völlig neuen VM. Dies kann zeitaufwändig sein, insbesondere, wenn Sie viele VMs haben. Das Aktualisieren oder Aufrüsten der Betriebssystemdateien innerhalb eines Containers ist dasselbe:
  1. Bearbeiten Sie die Builddatei Ihres Containerimages (als Dockerfile bezeichnet), um auf die neueste Version des Windows-Basisimages zu verweisen.
  2. Erstellen Sie Ihr Containerimage mit diesem neuen Basisimage neu.
  3. Laden Sie das Container-Image in Ihr Container-Register hoch.
  4. Führen Sie die erneute Bereitstellung mithilfe eines Orchestrators aus.
    Der Orchestrator bietet leistungsstarke Automatisierung für diesen Vorgang im großen Stil. Ausführliche Informationen finden Sie im Lernprogramm: Aktualisieren einer Anwendung in Azure Kubernetes Service.
Beständiger Speicher Verwenden Sie eine virtuelle Festplatte (VHD) für den lokalen Speicher für einen einzelnen virtuellen Computer oder eine SMB-Dateifreigabe für die Speicherung, die von mehreren Servern gemeinsam genutzt wird. Verwenden Sie Azure-Datenträger für lokalen Speicher für einen einzelnen Knoten oder Azure Files (SMB-Freigaben) für von mehreren Knoten oder Servern gemeinsam genutzten Speicher.
Lastenausgleich Der Lastenausgleich für virtuelle Maschinen verschiebt laufende VMs auf andere Server in einem Failover-Cluster. Container selbst werden nicht verschoben; stattdessen kann ein Orchestrator Container auf Clusterknoten automatisch starten oder beenden, um Änderungen der Auslastung und Verfügbarkeit zu steuern.
Fehlertoleranz VMs können bei einem Serverausfall innerhalb eines Clusters nahtlos auf einen anderen Server umgeschaltet werden, wobei das Betriebssystem des virtuellen Computers auf dem neuen Server neu gestartet wird. Wenn ein Clusterknoten fehlschlägt, werden alle darin ausgeführten Container schnell vom Orchestrator auf einem anderen Clusterknoten neu erstellt.
Vernetzung Verwendet virtuelle Netzwerkadapter. Verwendet eine isolierte Ansicht eines virtuellen Netzwerkadapters, die etwas weniger Virtualisierung bietet, da die Firewall des Hosts mit den Containern geteilt wird und dabei weniger Ressourcen verbraucht. Weitere Informationen finden Sie unter Windows-Containernetzwerk.