Der Unterschied zwischen Docker und virtuellen Maschinen: 1. Docker startet schnell auf der zweiten Ebene, während der Start virtueller Maschinen normalerweise mehrere Minuten dauert. 2. Unterschiedlicher Leistungsverlust, Docker benötigt weniger Ressourcen. 3. Unterschiedliche Isolation. Docker ist ein Prozess Die Isolation zwischen ihnen ist schwach, während virtuelle Maschinen eine Isolation auf Systemebene erreichen können.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.
Virtuelle Maschine: Eine virtuelle Maschine verwendet einen Hypervisor (Virtual-Machine-Management-System, zu den gebräuchlichsten gehören VMWare Workstation, VirtualBox), um virtuelle Hardware wie Netzwerkkarten, CPUs usw. zu virtualisieren Speicher und erstellen Sie dann eine virtuelle Maschine. Jede virtuelle Maschine ist ein unabhängiges Betriebssystem und verfügt über einen eigenen Systemkern.
Container: Container verwenden Namespaces, um Dateisysteme, Prozesse, Netzwerke, Geräte und andere Ressourcen zu isolieren, und verwenden Kontrollgruppen, um Berechtigungen und CPU-Ressourcen einzuschränken. Letztendlich haben Container keinen Einfluss aufeinander und Container können keinen Einfluss auf den Host haben.
Vorteile von Docker
Das auf dem Container ausgeführte Docker-Programm nutzt direkt die Hardwareressourcen des Hosts, sodass Docker in Bezug auf CPU, Speicher und Auslastung größere Effizienzvorteile hat
Docker nutzt das System direkt Der Kernel des Hosts vermeidet die Systemstartzeit, die beim Starten einer virtuellen Maschine erforderlich ist, und den Ressourcenverbrauch des laufenden Betriebssystems. Docker kann zum Starten einer großen Anzahl von Containern in wenigen Sekunden verwendet werden, was für eine virtuelle Maschine unmöglich ist . Die Vorteile des schnellen Starts und des geringen Ressourcenverbrauchs machen Docker zu einem guten Anwendungsszenario im automatischen Betriebs- und Wartungssystem elastischer Cloud-Plattformen.
Die Startzeit des Containers beträgt Sekunden, was viel Zeit bei Entwicklung, Test und Bereitstellung spart. Ein weiterer sehr wichtiger Punkt ist, dass Docker-Container auf fast jeder Plattform effizient bereitgestellt und erweitert werden können, einschließlich virtueller Maschinen, physischer Maschinen, öffentlichen Clouds, privaten Clouds, Personalcomputern, Servern usw. Diese Kompatibilität ermöglicht Benutzern dies Eine Anwendung direkt von einer Plattform auf eine andere migrieren.
Die Sicherheit virtueller Maschinen ist jedoch besser als die von Containern und teilt Ressourcen wie den Kernel und das Dateisystem mit dem Host und wirkt sich eher auf andere Container und Hosts aus.
Unterschiede
1. Unterschiedliche Startgeschwindigkeiten
Docker startet schnell auf der zweiten Ebene. Der Start virtueller Maschinen dauert normalerweise mehrere Minuten.
2. Unterschiedliche Leistungseinbußen
Docker benötigt weniger Ressourcen für die Interaktion zwischen Docker-Containern und -Kerneln und die Kernelschicht.
3. Die Systemauslastung ist anders.
Docker ist leichter. Die Docker-Architektur kann einen Kernel und eine gemeinsame Anwendungsbibliothek gemeinsam nutzen und belegt nur sehr wenig Speicher. In derselben Hardwareumgebung führt Docker weit mehr Images aus als virtuelle Maschinen und die Systemauslastung ist sehr hoch.
4. Unterschiedliche Isolation
Im Vergleich zu virtuellen Maschinen gehört Docker zur Isolation zwischen Prozessen, und virtuelle Maschinen können eine Isolation auf Systemebene erreichen.
5. Die Sicherheit ist anders
Die Sicherheit von Docker ist auch schwächer. Der Mandanten-Root von Docker ist derselbe wie der Host-Root. Sobald der Benutzer im Container von normalen Benutzerrechten auf Root-Rechte aktualisiert wird, verfügt er direkt über die Root-Rechte des Hosts und kann unbegrenzte Vorgänge ausführen. Die Root-Berechtigungen des Mandanten der virtuellen Maschine sind von den Root-Berechtigungen der virtuellen Maschine des Hosts getrennt, und die virtuellen Maschinen nutzen Ring-1-Hardware-Isolationstechnologie wie Intels VT-d und VT-x. Diese Isolationstechnologie kann verhindern, dass virtuelle Maschinen durchbrechen und interagieren Interaktionen untereinander und Container verfügen noch über keinerlei Hardware-Isolierung, was Container anfällig für Angriffe macht.
6. Unterschiedliche Verwaltbarkeit
Die zentralisierten Verwaltungstools von Docker sind noch nicht ausgereift. Verschiedene Virtualisierungstechnologien verfügen über ausgereifte Verwaltungstools. Beispielsweise bietet VMware vCenter umfassende Verwaltungsfunktionen für virtuelle Maschinen.
7. Verfügbarkeit und Wiederherstellbarkeit sind unterschiedlich.
Dockers Hochverfügbarkeitsunterstützung für Unternehmen wird durch schnelle Neubereitstellung erreicht. Die Virtualisierung verfügt über ausgereifte Garantiemechanismen wie Lastausgleich, Hochverfügbarkeit, Fehlertoleranz, Migration und Datenschutz, die in der Produktionspraxis getestet wurden. VMware kann eine Hochverfügbarkeit von 99,999 % für virtuelle Maschinen versprechen, um die Geschäftskontinuität sicherzustellen.
8. Die Erstellungs- und Löschgeschwindigkeiten sind unterschiedlich. Die Virtualisierungserstellung dauert nur wenige Minuten, während die Erstellung von Docker-Containern Sekunden dauert. Durch die schnelle Iteration von Docker kann bei der Entwicklung, beim Testen und bei der Bereitstellung viel Zeit gespart werden.
9. Die Bereitstellungs- und Bereitstellungsgeschwindigkeiten sind unterschiedlich.
Virtuelle Maschinen können eine konsistente Umgebungsbereitstellung durch Bilder erreichen, aber Docker kann den Container-Erstellungsprozess nicht systematisch aufzeichnen. Dadurch kann eine schnelle Verteilung und Bereitstellung erreicht werden Cluster Schnelle Bereitstellung;
Empfohlenes Lernen: „Docker-Video-Tutorial
“Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Docker und virtueller Maschine?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!