Unterschiede: 1. Docker-Container bieten prozessbasierte Isolation, während virtuelle VM-Maschinen eine vollständige Isolation von Ressourcen bieten. 2. Docker verwendet den Kernel des Host-Betriebssystems, während virtuelle VM-Maschinen unabhängige Kernel verwenden. 3. Docker-Startgeschwindigkeit befindet sich auf der zweiten Ebene und VM auf der Minutenebene 4. Die Integration von Docker ist besser als die von VM.
Die Betriebsumgebung dieses Tutorials: Linux 5.9.8-System, Docker-1.13.1 und VMware Workstation 16.0.0.16894299-Version, Dell G3-Computer.
1. Wesentlicher Unterschied:
VM (VMware) erstellt eine virtuelle Ebene, eine virtuelle Maschine basierend auf der Hostmaschine und dem Betrieb der Hostmaschine systemisiertes Betriebssystem und virtualisiertes Warehouse und dann die Anwendung installieren;
Container (Docker-Container) erstellt eine Docker-Engine auf dem Host-Computer und dem Betriebssystem des Host-Computers und installiert dann die Anwendung basierend auf der Engine.
Docker-Container bieten prozessbasierte Isolierung, während virtuelle VM-Maschinen eine vollständige Isolierung von Ressourcen ermöglichen. Container verwenden den Kernel des Host-Betriebssystems, während virtuelle Maschinen einen separaten Kernel verwenden.
2. Nutzungsunterschiede:
Größe:
1. Von Ubuntu in der virtuellen Maschine belegter Speicher: Der von der Ubuntu-Imagedatei im Docker-Container belegte Speicher:
Startup:
Docker erstellt die Docker-Engine auf dem Betriebssystem des Host-Computers und ruft Hardwareressourcen direkt auf dem Betriebssystem des Host-Computers auf, anstatt das Betriebssystem und die Hardwareressourcen zu virtualisieren, sodass der Vorgang schnell ist. Dies ist tatsächlich die Installation einer virtuellen Ubuntu-Maschine und das Abrufen einer Docker-Ubuntu-Spiegeldatei. Der Unterschied ist offensichtlich, dass es mehr als 2 Minuten dauert.
Integration:
Schneller Einstieg
Benutzer können ihre eigenen Programme in nur wenigen Minuten „dockerisieren“. Docker basiert auf dem „Copy-on-Write“-Modell, wodurch die Anwendung sehr schnell geändert werden kann. Man kann sagen, dass es den Bereich „Der Code wird nach Belieben geändert“ erreicht. Anschließend können Sie einen Container erstellen, um die Anwendung auszuführen. Die meisten Docker-Container starten in weniger als 1 Sekunde. Da der Overhead des Hypervisors entfällt, verfügen Docker-Container über eine hohe Leistung. Gleichzeitig können mehr Container auf demselben Host ausgeführt werden, sodass Benutzer die Systemressourcen so weit wie möglich nutzen können.2)Logische Klassifizierung der Verantwortlichkeiten
Mit Docker müssen sich Entwickler nur um die in den Containern laufenden Anwendungen kümmern, während sich das Betriebs- und Wartungspersonal nur um die Verwaltung der Container kümmern muss. Der Zweck des Docker-Designs besteht darin, die Konsistenz zwischen der Entwicklungsumgebung, in der Entwickler Code schreiben, und der Produktionsumgebung, in der Anwendungen bereitgestellt werden, zu verbessern. Dadurch wird die Art von „Während der Entwicklung ist alles normal, es muss ein Betriebs- und Wartungsproblem sein (die Testumgebung ist normal, wenn nach dem Online-Gehen ein Problem auftritt, muss es sich um ein Betriebs- und Wartungsproblem handeln)“3)Schneller und effizienter Entwicklungslebenszyklus
Eines der Ziele von Docker ist es, den Codezyklus von der Entwicklung über das Testen bis hin zur Bereitstellung und dem Online-Betrieb zu verkürzen und Ihre Anwendung portabel, einfach zu erstellen und einfach zusammenzuarbeiten. (Laienhaft ausgedrückt ist Docker wie eine Kiste, die viele Objekte enthalten kann. Wenn Sie diese Objekte benötigen, können Sie sie direkt aus der großen Kiste nehmen, ohne sie einzeln aus der Kiste zu nehmen.)4)Serviceorientiert Architektur wird gefördert
Docker fördert auch serviceorientierte Architektur und Microservices-Architektur. Docker empfiehlt, dass ein einzelner Container nur eine Anwendung oder einen Prozess ausführt und so ein verteiltes Anwendungsmodell bildet. Bei diesem Modell können Anwendungen oder Dienste als eine Reihe intern miteinander verbundener Container dargestellt werden, wodurch eine verteilte Bereitstellung, Erweiterung oder Fehlerbehebung ermöglicht wird Die Anwendung wird sehr einfach und verbessert gleichzeitig die Selbstbeobachtung des Programms. (Natürlich können Sie mehrere Anwendungen in einem Container ausführen)Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen einer virtuellen VM-Maschine und einem Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!