Heim >Backend-Entwicklung >C#.Net-Tutorial >Was genau ist Docker und warum ist es so beliebt? Welche Vor- und Nachteile hat es?
Was ist Docker?
Um es einfach auszudrücken: Docker ist ein „Container“ (Linux-Container, LXCs), der von einem in der GO-Sprache geschriebenen Programm ausgeführt wird. Der Grundstein aktueller Cloud-Dienste ist die Isolierung auf Betriebssystemebene auf demselben physischen Server Virtualisieren Sie mehrere Hosts. Docker implementiert eine Isolation auf Anwendungsebene; es verändert unsere grundlegende Entwicklungs- und Betriebseinheit vom direkten Betrieb des virtuellen Hosts (VM) zu einem „Container“, in dem das Betriebssystem ausgeführt wird.
Docker ist eine offene Plattform, die für Entwickler und Systemadministratoren entwickelt wurde, um verteilte Anwendungen zu veröffentlichen und auszuführen. Besteht aus zwei Teilen:
Docker Engine: eine tragbare, leichte Laufzeitumgebung und ein Paketmanager. (Hinweis* Single OS vs. Single Thread, ist es NodeJS besonders ähnlich?)
Docker Hub: Ein Cloud-Dienst, der zum Erstellen automatisierter Workflows und zum Teilen von Anwendungen erstellt wurde. (Hinweis* Cloud-Image-/Paketverwaltung vs. npm-Paketverwaltung, ist es npm sehr ähnlich?)
Vom 20. März 2013 wurde die erste Version von Docker offiziell veröffentlicht, bis Juni 2014, Docker 1.0 Es dauerte 15 Es dauerte Monate, bis es offiziell veröffentlicht wurde. Obwohl seine Entwicklungsgeschichte noch sehr kurz ist, erfreut sich Docker immer größerer Beliebtheit.
Tatsächlich ist die Container-Technologie keine Innovation von Docker. Cloud-Dienstleister wie HeroKu und NodeJitsu haben eine ähnliche, leichtgewichtige Virtualisierungstechnologie eingeführt, aber Docker ist der erste, der diese Container-Technologie in großem Umfang offenlegt von der Community akzeptiert.
Der gute Teil
Die Vorteile von Docker gegenüber virtuellen VM-Maschinen liegen auf der Hand, nämlich geringes Gewicht, hohe Leistung und Komfort. Die folgenden Teile sind auszugsweise aufgeführt: KVM- und Docker-LXC-Benchmarking mit OpenStack
Schnell
Die Laufzeitleistung kann erheblich verbessert werden (ein klassischer Fall ist eine Verbesserung von 97%)
Verwaltungsvorgänge (Starten, Stoppen, Start, Neustart usw.) werden in Sekunden oder Millisekunden gemessen.
Agil
So agil wie eine virtuelle Maschine und kostengünstiger ist die Bereitstellung auf Bare-Metal so einfach wie ein Klick.
Flexibel
Anwendungen und Systeme „containerisieren“, ohne zusätzliche Betriebssysteme hinzuzufügen,
Leichtgewichtig
Sie verfügen über genügend „Betriebs“-Systeme, einfach hinzufügen oder den Spiegel verkleinern. Auf einem Server können 100 bis 1000 Container bereitgestellt werden.
Günstig
Open Source, kostenlos und kostengünstig. Unterstützt und angetrieben vom modernen Linux-Kernel. Hinweis* Lightweight Container kann sicherlich mehr „Container“ auf einer physischen Maschine öffnen und ist voraussichtlich günstiger als VMs.
Ökosysteme
werden immer beliebter, schauen Sie sich einfach Google Trends, Docker oder LXC an.
und es gibt unzählige Communities und Drittanbieteranwendungen.
Cloud-Unterstützung
Unzählige Cloud-Dienste stellen Frameworks für die Erstellung und Verwaltung von Linux-Containern bereit.
Bezüglich der Leistungsvorteile von Docker können Sie sich auch auf die Bewertung der Leistungsverbesserung durch diesen IBM-Ingenieur beziehen. Es ist in allen Aspekten deutlich besser als VMs (OS-System-Level-Virtualisierung).
Leistungsmerkmale von VMs vs. Docker-Containern von Boden Russel (IBM)
Leistungsmerkmale traditioneller V-MS vs. Docker-Container
Umstrittene Teile
Das wird es In jedem Projekt kann es zu Kontroversen kommen, genau wie bei Go, NodeJS und auch bei Docker.
Kann es vollständig isoliert werden?
Kann ein einzelnes Betriebssystem eine vollständige Isolation erreichen? oder das gesamte System? Viele Menschen sind immer noch skeptisch, ob Docker geschäftskritische Systeme in einer tatsächlichen Multi-Host-Produktionsumgebung unterstützen kann. Hinweis* Genau wie einige Leute bezweifeln, dass ein Node.JS-Einzelthread schnell und instabil ist und nicht in komplexen Szenarien angewendet werden kann.
Aber die gute Nachricht ist, dass der Linux-Kernel viele Verbesserungen an Container vorgenommen hat, um eine bessere Isolierung zu unterstützen.
Die GO-Sprache ist noch nicht vollständig ausgereift
Docker wird von der Go-Sprache entwickelt, aber die GO-Sprache ist den meisten Entwicklern relativ unbekannt und es wird noch einige Zeit dauern, bis sie verbessert wird Reife. Dieser Verwaltungsansatz, der halb Git, halb Paket ist, bereitet manchen Menschen Unbehagen.
Kontrolliert von einem privaten Unternehmen
Docker wurde von einem privaten Unternehmen namens Dotcloud entwickelt. Die Unternehmen sind alle auf Gewinn ausgerichtet. Sie können beispielsweise den Quellcode nicht zum Kompilieren des Docker-Projekts verwenden Kann nur verwendet werden Das von Black Box zusammengestellte Docker-Binärverteilungspaket ist in Zukunft möglicherweise nicht mehr völlig kostenlos. Derzeit hat Docker Dienste auf Unternehmensebene (Beratung, Support und Schulung) für Unternehmen eingeführt.