Gibt es einen Leistungsverlust in Docker?
Docker weist einen Leistungsverlust auf, der jedoch im Vergleich zu den hervorragenden Funktionen von Docker vernachlässigbar ist. Docker ist eine Open-Source-Anwendungscontainer-Engine, mit der Entwickler Pakete erstellen können in einen Container und dann veröffentlicht, um auf jedem gängigen Linux-Rechner ausgeführt zu werden.
Docker
Docker ist eine Open-Source-Anwendungscontainer-Engine, die es Entwicklern ermöglicht, ihre Anwendungen und Abhängigkeiten in tragbare Container zu packen Dann wird es auf jeder gängigen Linux- oder Windows-Maschine veröffentlicht, und die Container nutzen vollständig den Sandbox-Mechanismus und haben keine Schnittstellen untereinander.
Ein kompletter Docker besteht aus folgenden Teilen:
DockerClient
Docker Daemon
Docker-Image
DockerContainer-Container
Docker-Prinzip
Das Kernproblem von Docker Die Lösung besteht darin, LXC zur Implementierung VM-ähnlicher Funktionen zu verwenden und so sparsamere Hardwareressourcen zu nutzen, um Benutzern mehr Rechenressourcen zur Verfügung zu stellen. Im Gegensatz zur VM-Methode handelt es sich bei LXC nicht um eine Reihe von Hardware-Virtualisierungsmethoden. Es kann nicht in vollständige Virtualisierung, Teilvirtualisierung und Paravirtualisierung eingeteilt werden, sondern ist eine Virtualisierungsmethode auf Betriebssystemebene, die möglicherweise nicht leicht zu verstehen ist als VM. Wir beginnen also mit den Problemen, die Docker durch die Virtualisierung lösen muss, um zu sehen, wie es die Virtualisierungsanforderungen der Benutzer erfüllt.
Benutzer müssen Virtualisierungsmethoden in Betracht ziehen, insbesondere Hardware-Virtualisierungsmethoden, die hauptsächlich die folgenden 4 Probleme lösen müssen:
Isolation – alle Benutzerinstanzen sind voneinander isoliert und beeinflussen sich nicht gegenseitig. Die durch die Hardware-Virtualisierungsmethode angegebene Methode ist VM, die durch LXC angegebene Methode ist Container und die detailliertere Methode ist Kernel-Namespace
Kontingent/messbar – jede Benutzerinstanz kann aktiviert sein- Nachfrage Bei der Bereitstellung seiner Rechenressourcen können die genutzten Ressourcen gemessen werden. Die Hardware-Virtualisierungsmethode kann einfach implementiert werden, da sie die CPU und den Speicher virtualisiert. LXC verwendet hauptsächlich Cgroups zur Steuerung von Ressourcen.
Mobilität – Benutzerinstanzen können einfach kopiert, verschoben und neu erstellt werden. Die Hardware-Virtualisierungsmethode stellt Snapshots und Bilder für die Implementierung bereit, und Docker verwendet (hauptsächlich) AUFS, um
Sicherheit zu implementieren – dieses Thema ist relativ groß und der Schwerpunkt liegt hier auf dem Schutz des Containers so viel wie möglich aus der Perspektive des Gastgebers. Bei der Hardware-Virtualisierungsmethode werden Benutzerprozesse übersetzt und in virtuellen Maschinencontainern wie KVM ausgeführt, da der Virtualisierungsgrad relativ hoch ist. Bei LXC ist der Benutzerprozess jedoch nur ein untergeordneter Prozess des lxc-start-Prozesses Der Namespace des Kernels ist isoliert, daher sind einige Kernel-Patches erforderlich, um sicherzustellen, dass der Host nicht böswillig in die Betriebsumgebung eindringt. Dotcloud verwendet zur Lösung dieses Problems hauptsächlich den Kernel-Grsec-Patch
Empfohlenes Tutorial: „
Das obige ist der detaillierte Inhalt vonGibt es einen Leistungseinbruch bei Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!