Wie unterscheidet sich Docker von einer virtuellen Maschine?
Ich halte Wiederlesen die Docker Dokumentationum zu versuchen, um den Unterschied zu verstehen zwischen Docker und eine vollständige VM. Wie kommt es zu verwalten, um eine vollständige Dateisystem, isolierte Netzwerk-Umgebung, etc. ohne so schwer?
Warum ist die Bereitstellung von software zu einem Docker-image (wenn das der richtige Begriff) leichter, als einfach zu implementieren, um eine einheitliche Produktionsumgebung?
InformationsquelleAutor der Frage zslayton | 2013-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Andockfenster ursprünglich LinuX-Container (LXC), aber später eingeschaltet, um runC (früher bekannt als libcontainer), die läuft in der gleichen Betriebssystem wie seine Gastgeber. Dies ermöglicht es, zu teilen eine Menge von dem host-Betriebssystem-system-Ressourcen. Außerdem verwendet es ein layered filesystem (AuFS) und schafft Vernetzung.
AuFS ist eine mehrschichtige Datei-system, so können Sie eine nur-lese-Teil und einen schreiben Artikel, die zusammengeführt werden. Hätte man die gemeinsamen Teile des Betriebssystems, als nur zu Lesen (und teilen alle Ihre Container) und geben Sie jeder container seine eigene Halterung für das schreiben.
So, lassen Sie uns sagen, Sie haben einen 1 GB container-Bild; wenn Sie wollte, eine komplette VM, die Sie brauchen würde, um 1 GB mal x Anzahl der VMs, die Sie wollen. Mit Docker und AuFS können Sie die den Großteil der 1 GB zwischen all den Containern, und wenn Sie 1000 Container, die Sie immer noch nur etwas mehr als 1 GB Speicherplatz für den Container OS (vorausgesetzt, dass Sie alle mit der gleichen OS-image).
Einen voll virtualisierten system bekommt seinen eigenen set an Ressourcen zugewiesen werden, und lässt sich minimal-sharing. Sie bekommen mehr isoliert, aber es ist viel schwerer (benötigt mehr Ressourcen). Mit Docker bekommen Sie weniger isoliert, aber die Behälter sind leicht (weniger Ressourcen). Also könnte man problemlos laufen Tausende von Containern, die auf einem host, und es wird nicht einmal Blinzeln. Versuchen Sie dabei, mit Xen, und wenn Sie einen wirklich großen Vielzahl, ich glaube nicht, dass es möglich ist.
Einen voll virtualisierten system dauert in der Regel Minuten, um zu starten, in der Erwägung, dass Docker/LXC/runC Container Sekunden dauern, und oft sogar weniger als eine Sekunde.
Gibt es vor-und Nachteile für jede Art von virtualisierten system. Wenn Sie wollen die volle Trennung mit garantierten Ressourcen, einem full-VM ist der Weg zu gehen. Wenn Sie nur wollen, um die Prozesse zu isolieren sich von einander und wollen zu laufen, eine Tonne von Ihnen auf eine vernünftig große host, dann Docker/LXC/runC scheint der Weg zu gehen.
Für mehr Informationen, check-out diese Reihe von blog-postsdie machen einen guten job zu erklären, wie LXC funktioniert.
Bereitstellung einer konsistenten Produktion-Umgebung ist einfacher gesagt als getan. Auch wenn Sie tools verwenden, wie Koch und Puppegibt es immer OS updates und andere Dinge, die geändert werden zwischen hosts und Umgebungen.
Andockfenster bietet Ihnen die Möglichkeit, snapshot-OS in ein gemeinsames Bild, und ermöglicht eine einfache Bereitstellung auf anderen Docker-hosts. Lokal, dev, qa, prod, etc.: alle das gleiche Bild. Sicher, Sie können dies tun, mit anderen tools, aber bei weitem nicht so leicht oder schnell.
Dies ist ideal zum testen; lassen Sie uns sagen, Sie haben Tausende von tests, dass eine Verbindung zu einer Datenbank, und jeder test braucht eine unberührte Kopie der Datenbank und ändert die Daten. Der klassische Ansatz hierzu ist das zurücksetzen der Datenbank nach jedem test entweder mit benutzerdefinierten code oder mit tools wie Flyway - dies kann sehr zeitaufwendig und bedeutet, dass die tests ausgeführt werden müssen, Seriell. Allerdings mit Docker könnte Sie erstellen Sie eine Sicherung Ihrer Datenbank und führen Sie bis eine Instanz pro test, und führen Sie alle tests parallel, da Sie wissen, werden Sie alle ausgeführt werden, gegen den gleichen snapshot der Datenbank. Da die tests werden parallel ausgeführt und in Docker-Containern konnten Sie laufen alle auf dem gleichen Feld zur gleichen Zeit und soll bedeutend schneller abgeschlossen. Versuchen Sie, mit einer vollständigen VM.
Kommentare...
Gut, mal sehen, ob ich erklären kann. Beginnen Sie mit einem Basis-image, und dann machen Sie Ihre änderungen, und diese änderungen mit docker, und es entsteht ein Bild. Dieses Bild enthält nur die Unterschiede von der Basis. Wenn Sie möchten, starten Sie Ihr Bild, müssen Sie auch die Basis, und es Lagen Ihr Bild auf der Oberseite der Basis mit einem vielschichtigen Datei-system: wie oben bereits erwähnt, Docker nutzt AUFS. AUFS verschmilzt die verschiedenen Schichten zusammen, und Sie bekommen, was Sie wollen; Sie brauchen nur, um es auszuführen. Sie können halten das hinzufügen von mehr und mehr Bilder (Schichten) und es wird weiterhin nur gespeichert werden, sind die diffs. Seit Docker in der Regel baut auf fertige Bilder aus einem RegistrierungSie haben selten die "snapshot" - das ganze OS selbst.
InformationsquelleAutor der Antwort Ken Cochrane
Guten Antworten. Nur um eine Bild-Darstellung des container vs VM, haben Sie einen Blick auf die unten.
Quelle: https://www.docker.com/what-container#/package_software
InformationsquelleAutor der Antwort manu97
Könnte es hilfreich sein, zu verstehen, wie die Virtualisierung und Behältern, arbeiten auf niedrigem Niveau. Das wird klar, bis viele Dinge.
Hinweis: ich bin Vereinfachung ein bisschen in der Beschreibung unten. Siehe Referenzen für weitere Informationen.
Wie die Virtualisierung funktioniert auf niedrigem Niveau?
In diesem Fall die VM-manager übernimmt die CPU ring 0 (oder der "root-Modus", in den neueren CPUs) und fängt alle privilegierten Forderungen Gast-OS zu erstellen, die illusion, dass das Gast-Betriebssystem hat seinen eigenen hardware. Fun fact: Bevor Sie 1998 dachte man es sei unmöglich, dies zu erreichen in der x86-Architektur, da gab es keinen Weg, das zu tun diese Art der überwachung. Die Leute bei VMWare waren die ersten wer hatte die Idee, zu schreiben, die ausführbare bytes im Speicher für privilegierte Anrufe von Gast-OS zu erreichen.
Der Netto-Effekt ist, dass die Virtualisierung ermöglicht das ausführen von zwei völlig verschiedenen Betriebssystemen auf der gleichen hardware. Jedem Gast-Betriebssystem wird durch den Prozess des bootstrapping, laden von kernel etc. Sie haben sehr eng Sicherheit, zum Beispiel das Gast-OS können nicht erhalten Sie vollen Zugriff auf host-OS oder anderer Gäste Durcheinander zu bringen.
Wie Container arbeitet auf einem niedrigen level?
Rund Zwei tausend sechsMenschen, darunter auch einige Mitarbeiter von Google umgesetzt neuen kernel-level-feature namens namespaces (jedoch ist die Idee lange vor gab es in FreeBSD). Eine Funktion des OS ist zu ermöglichen die gemeinsame Nutzung von globalen Ressourcen wie Netzwerk und Festplatte auf die Prozesse. Was aber, wenn diese Globale Ressourcen gewickelt wurden, namespaces, so dass Sie sichtbar sind, nur für diejenigen Prozesse, die ausgeführt werden in der gleichen namespace? Sagen, Sie können Holen Sie sich ein Stück der Platte und legen, die im namespace X und dann die Laufenden Prozesse in namespace Y kann nicht auf Sie zugreifen. Ähnlich wie die Prozesse im namespace X kann nicht auf alles im Speicher, der reserviert wird, um namespace Y. natürlich, Verfahren in X nicht sehen können, oder sprechen Sie Prozesse im namespace Y. Dieser bietet die Art von Virtualisierung und-isolation für Globale Ressourcen. Dies ist, wie docker funktioniert: Jeder Behälter wird in einer eigenen namespace verwendet aber genau die gleichen kernel wie alle anderen Container. Die isolation geschieht, weil der kernel kennt den namespace, der zugewiesen wurde, um den Prozess und während der API-Aufrufe Sie sicher, dass der Prozess kann nur auf Ressourcen zugreifen, die in einem eigenen Namensraum.
Die Grenzen der Container vs VM sollte nun offensichtlich: Sie kann nicht laufen völlig unterschiedliche OS in Containern, wie in den VMs. Aber Sie kann verschiedene Distributionen von Linux, weil Sie teilen sich den gleichen kernel. Die Isolationsstufe ist nicht so stark wie in der VM. In der Tat, es war ein Weg für die "Gast" - container zu übernehmen, die Gastgeber in frühen Implementierungen. Sie können auch sehen, dass beim laden neuer container, die gesamte neue Kopie von OS nicht starten, wie es in VM. Alle Container teilen die selben kernel. Dies ist der Grund, warum die Container sind leicht im Gewicht. Auch im Gegensatz zu VM, brauchen Sie nicht zu vorab reservieren, bedeutende chunk-Speicher-Behälter, weil wir nicht mit neue Kopie von OS. Dies ermöglicht Tausende von Containern auf einem OS beim sandboxing Ihnen, die möglicherweise nicht möglich ist zu tun, wenn wir liefen separate Kopie von OS in seiner eigenen VM.
InformationsquelleAutor der Antwort ShitalShah
Ich mag Ken Cochrane Antwort.
Aber ich will hinzufügen, weitere Sicht, nicht im detail behandelt hier. Meiner Meinung nach Andockfenster unterscheidet sich auch im gesamten Prozess. Im Gegensatz zu VMs, Docker ist nicht (nur) über optimale Ressourcen-sharing von hardware, außerdem bietet es ein "system" für die Verpackung-Anwendung (bevorzugt, aber nicht unbedingt ein muss, als eine Reihe von microservices).
Mir passt es in die Lücke zwischen Entwickler-tools wie rpm, Debian Pakete, Mavennpm + Git auf der einen Seite und ops-tools wie PuppeVMware, Xen, you name it...
Ihre Frage unterstellt etwas gleichbleibende Produktionsumgebung. Aber wie halten Sie es konsistent?
Betrachten wir einige Menge (>10) von Servern und Anwendungen, die Phasen in der pipeline.
Halten in sync werden Sie beginnen, etwas zu benutzen wie Marionetten, Koch oder Ihren eigenen provisioning-Skripte, unveröffentlicht Regeln und/oder die Menge an Dokumentation, die... In der Theorie-Server kann auf unbestimmte Zeit laufen, und werden immer vollständig konsistent und up-to-date. Die Praxis schlägt die Verwaltung einer server-Konfiguration komplett, so gibt es erheblichen Spielraum für die Konfiguration drift und unerwartete Veränderungen an Laufenden Servern.
Also es ist ein bekanntes Muster zu vermeiden, die so genannte unveränderlich server. Aber das immutable server pattern wurde nicht geliebt. Vor allem, weil die Grenzen von VMs, die verwendet wurden, bevor Andockfenster. Umgang mit mehreren Gigabyte großen Bildern, bewegten die großen Bilder um, nur um zu ändern, einige Felder in der Anwendung, war sehr sehr mühsam. Verständlich...
Mit einem Docker-ökosystem, werden Sie nie brauchen, um zu bewegen Gigabyte auf "kleine änderungen" (danke an aufs und Registry) und Sie brauchen nicht zu sorgen über den Verlust von Leistung von packaging-Anwendungen in Docker-container zur Laufzeit. Sie brauchen nicht zu befürchten Versionen von diesem Bild.
Und schließlich werden Sie sogar oft in der Lage zu reproduzieren komplexen Produktionsumgebungen auch auf Ihrem Linux-laptop (bitte nennen Sie mich nicht wenn nicht funktioniert, in Ihrem Fall ;))
Natürlich können Sie start Docker-Container in VMs (es ist eine gute Idee). Reduzieren Sie Ihre server provisioning auf der VM-Ebene. Alle oben genannten könnte managed by Docker.
P. S. Mittlerweile Docker verwendet eine eigene Implementierung "libcontainer" anstelle von LXC. Aber LXC ist noch brauchbar.
InformationsquelleAutor der Antwort aholbreich
Docker ist nicht eine Virtualisierungs-Methodik. Es stützt sich auf andere tools, die tatsächlich umzusetzen, container-basierte Virtualisierung oder operating system-level virtualization. Für, die, - Andockfenster wurde zunächst mithilfe von LXC-Treiber, ging dann zu libcontainer, die jetzt umbenannt werden, runc. Docker konzentriert sich primär auf die Automatisierung der Bereitstellung von Anwendungen im application-Container. Anwendung Behälter sind entworfen, um Paket und führen Sie einen einzelnen Dienst, in der Erwägung, dass system-Container sind so konzipiert, laufen mehrere Prozesse, wie virtuelle Maschinen. So, Docker ist, als ein Behälter-management oder application-deployment-tool auf containerisierte Systeme.
Um zu wissen, wie es sich von anderen Virtualisierungen, gehen wir durch die Virtualisierung und seiner Arten. Dann wäre es einfacher zu verstehen, was ist der Unterschied da.
Virtualisierung
In seiner konzipierten form, wurde es als eine Methode der logischen Aufteilung mainframes können mehrere Anwendungen gleichzeitig ausführen. Aber das Szenario drastisch verändert, wenn Unternehmen und open-source-communities waren in der Lage, eine Methode im Umgang mit den privilegierten Anweisungen in der einen oder anderen Weise und ermöglichen es, mehrere Betriebssysteme ausgeführt werden, gleichzeitig auf einem x86-basierten system.
Hypervisor
Den hypervisor behandelt das erstellen der virtuellen Umgebung, in der der Gast virtuelle Maschinen betreiben. Er überwacht die Gast-Systeme und stellt sicher, dass Ressourcen bereitgestellt werden, um die Gäste als notwendig. Der hypervisor sitzt zwischen dem physischen Computer und der virtuellen Maschinen und stellt die Virtualisierung Dienstleistungen für die virtuellen Maschinen. Um es zu realisieren, es fängt das Gast-Betriebssystem Vorgänge für die virtuellen Maschinen und emuliert den Betrieb der Rechner, auf dem das Betriebssystem.
Die rasante Entwicklung von Technologien für die Virtualisierung in Erster Linie in der cloud, hat die Gefahren der Verwendung von Virtualisierung weiter, indem mehrere virtuelle Server erstellt werden, auf einem einzigen physikalischen server mit Hilfe von Hypervisoren wie Xen, VMware Player, KVM, etc., und der Einbau von hardware-Unterstützung in den commodity-Prozessoren, wie Intel VT und AMD-V.
Arten der Virtualisierung
Virtualisierungs-Methode kategorisiert werden können, je nachdem, wie es imitiert hardware, um ein Gast-Betriebssystem und emuliert Gast-Betriebssystem-Umgebung. In Erster Linie gibt es drei Arten der Virtualisierung:
Emulation
Emulation, auch bekannt als volle Virtualisierung-läuft die virtuelle Maschine OS-kernel komplett in software. Der hypervisor verwendet in dieser Art ist bekannt als Typ-2-hypervisor. Es ist installiert auf die Oberseite des host-Betriebssystems, die verantwortlich ist für die übersetzung der Gast-OS-kernel-code, um software-Anweisungen. Die übersetzung erfolgt vollständig in software und erfordert keine hardware-Einbindung. Emulation macht es möglich, alle nicht-modifizierten Betriebssystem unterstützt, dass die Umgebung emuliert wird. Der Nachteil dieser Art der Virtualisierung ist zusätzliche system-Ressource-Aufwand, führt zu einer Abnahme der Leistung im Vergleich zu anderen Arten von Virtualisierungen.
Beispiele in dieser Kategorie sind VMware Player, VirtualBox, QEMU, Bochs, Parallels, etc.
Paravirtualisierung
Paravirtualisierung, auch bekannt als Typ-1-hypervisor läuft direkt auf der hardware, oder "bare-metal", und bietet virtualization services direkt auf die virtuellen Maschinen, die darauf ausgeführt. Es hilft dem Betriebssystem der virtualisierten hardware, und der realen hardware zusammenarbeiten, um eine optimale Leistung zu erzielen. Diese Hypervisoren haben in der Regel eine ziemlich kleine Grundfläche und nicht, sich selbst, erfordern umfangreiche Ressourcen.
Beispiele in dieser Kategorie sind Xen, KVM, etc.
Container-basierte Virtualisierung
Container-basierte Virtualisierung, auch bekannt als operating system-level-Virtualisierung ermöglicht es, mehrere isolierte Ausführungen in einem einzigen Betriebssystem-kernel. Es hat die bestmögliche performance und Dichte und bietet ein dynamisches Ressourcen-management. Die isolierte virtuelle Umgebung, die zur Ausführung der durch diese Art der Virtualisierung ist die Bezeichnung container und kann gesehen werden, als ein verfolgter Gruppe von Prozessen.
Dem Konzept der container wird ermöglicht durch die namespaces feature Hinzugefügt, um Linux kernel-version 2.6.24. Die container fügt seine ID zu jedem Prozess und das hinzufügen neuer access control prüft zu jedem system call. Es erfolgt durch die clone() das call-system ermöglicht die Erstellung von eigenen Instanzen zuvor-globalen namespaces.
Namespaces, die verwendet werden können in viele verschiedene Arten, aber die häufigste Methode ist für die Erstellung eines isolierten container, der hat keinen Einblick oder Zugriff auf Objekte außerhalb des Behälters. Prozesse laufen innerhalb des Containers zu sein scheinen, die auf einem normalen Linux-system, aber Sie teilen die zugrunde liegende kernel mit Prozessen, die sich in anderen Namensräumen, das gleiche gilt für andere Arten von Objekten. Zum Beispiel, wenn Sie namespaces verwenden, die root-Benutzer im inneren des Behälters wird nicht so behandelt, als root, das außerhalb des Behälters, zusätzliche Sicherheit.
Dem Linux Control Groups (cgroups) - subsystem, die nächste große Komponente zu ermöglichen, container-basierte Virtualisierung wird verwendet, um die Gruppe Prozesse und verwalten Sie Ihre gesamten Ressourcen-Verbrauch. Es wird Häufig verwendet, um limit-Speicher-und CPU-Verbrauch von Containern. Da ein Container-Linux-system hat nur einen kernel und der kernel hat vollen Einblick in die Container, es ist nur eine Ebene des resource-allocation und scheduling.
Mehrere management-tools gibt es für Linux-Containern LXC, LXD -, systemd-nspawn, lmctfy, Warden, Linux-VServer, OpenVZ, Docker, etc.
Container vs Virtuellen Maschinen
Im Gegensatz zu einer virtuellen Maschine, einem Behälter braucht nicht zum Booten des Betriebssystem-Kernels, so können Container erstellt werden, in weniger als einer Sekunde. Diese Eigenschaft macht die container-basierte Virtualisierung einzigartig und wünschenswert als andere Virtualisierungs-Ansätze.
Da die container-basierte Virtualisierung fügt wenig oder kein overhead auf dem host-Computer, container-basierte Virtualisierung ist nahezu native performance
Für container-basierte Virtualisierung, wird keine zusätzliche software benötigt, im Gegensatz zu anderen Virtualisierungen.
Alle Container auf einem host-Rechner teilen sich die Planer der host-Maschine spart zusätzliche Ressourcen.
Staaten Container (Docker oder LXC Bilder) sind klein im Vergleich zu virtual-Maschine-images, container-Bilder sind einfach zu verteilen.
Resource management im Behälter wird erreicht durch cgroups. Cgroups nicht erlauben Container zu verbrauchen mehr Ressourcen, als Ihnen zugewiesenen. Aber, ab jetzt, alle Ressourcen der host-Maschine, die sichtbar werden in virtuellen Maschinen, kann aber nicht verwendet werden. Dies kann realisiert werden durch ausführen
top
oderhtop
auf Container und host-Computer zur gleichen Zeit. Die Ausgabe in allen Umgebungen wird ähnlich Aussehen.InformationsquelleAutor der Antwort Ashish Bista
Durch diesen Beitrag werden wir zeichnen Sie einige Linien von Differenzen zwischen VMs und LXCs. Lassen Sie uns zuerst definieren Sie.
VM:
Einer virtuellen Maschine emuliert eine physische computing-Umgebung, aber Anfragen für CPU -, Arbeitsspeicher -, Festplatten -, Netzwerk-und andere hardware-Ressourcen verwaltet werden durch eine Virtualisierungsschicht, die übersetzt diese Anforderungen an die zugrunde liegende physische hardware.
In diesem Zusammenhang ist die VM als Gast, während die Umgebung es läuft, als host bezeichnet.
LXCs:
Linux Containers (LXC) operating system-level-Funktionen, die es möglich machen, mehrere isolierte Linux-Container auf einem host Steuern (die LXC-host). Linux-Container dienen als leichte alternative zu den VMs, da Sie nicht verlangen, die Hypervisoren viz. Virtualbox, KVM, Xen, etc.
Nun, es sei denn, Sie wurden unter Drogen gesetzt von Alan (Zach Galifianakis - aus der Hangover-Reihe) und wurde in Las Vegas im letzten Jahr, werden Sie sehr bewusst über den enormen spurt von Interesse für Linux-Container-Technologie, und wenn ich ein container-Projekt, das erstellt eine Summen auf der ganzen Welt in den letzten Monaten ist – Docker führt zu einigen echo der Meinung, dass cloud-computing-Umgebungen verlassen sollten virtuelle Maschinen (VMs) und ersetzen Sie Sie durch Behälter, die aufgrund Ihrer geringen overhead und eine potenziell bessere performance.
Aber die große Frage ist, ist es machbar?, wird es vernünftig sein?
ein. LXCs beschränkt, um eine Instanz von Linux. Es könnte verschiedene Varianten von Linux (z.B. ein Ubuntu-container auf einem CentOS-host, aber es ist immer noch Linux.) Ebenso Windows-basierten Container bezieht sich auf eine Instanz von Windows, wenn wir den Blick auf VMs-Sie haben einen ziemlich breiteren Umfang und mit den Hypervisoren Sie sind nicht beschränkt auf die Betriebssysteme Linux oder Windows.
b. LXCs haben niedrige Gemeinkosten und haben eine bessere Leistung im Vergleich zu den VMs. Extras viz. Andockfenster, die errichtet sind, die auf den Schultern von LXC-Technologie zur Verfügung gestellt haben Entwickler mit einer Plattform für die Ausführung Ihrer Anwendungen und zur gleichen Zeit haben ermächtigt Operationen Menschen mit einem Werkzeug, das Ihnen erlauben wird, um die Bereitstellung des gleichen container auf die Produktion von Servern oder Rechenzentren. Es versucht, die Erfahrung machen, zwischen einem Entwickler, eine Anwendung ausführen, Booten und testen einer Anwendung und einer operations person bereitstellen, die Anwendung nahtlos, weil das ist, wo die Reibung liegt und Zweck von DevOps ist der Abbau von silos.
Also der beste Ansatz ist die cloud-Infrastruktur-Anbieter sollten sich für eine angemessene Nutzung des VMs und LXC, als Sie sind jeweils geeignet, um Griff-workloads und Szenarien.
Verzicht auf VMs ist es nicht praktisch, wie jetzt. So VMs und LXCs haben Ihre eigenen individuellen Existenz und Bedeutung.
InformationsquelleAutor der Antwort Pankaj Arora
Meisten Antworten hier sprechen Sie über virtuelle Maschinen. Ich werde Ihnen eine Einzeiler-Antwort auf diese Frage, die hat mir geholfen, die meisten in den letzten paar Jahren mit Docker. Es ist dies:
Nun, lassen Sie mich erklären, ein wenig mehr darüber, was das bedeutet. Virtuelle Maschinen sind, eigene Bestie. Ich fühle mich wie zu erklären, was Andockfenster wird Ihnen helfen zu verstehen, mehr als erklären, was eine virtuelle Maschine ist. Vor allem, weil es gibt viele gute Antworten hier sagen Sie genau das, was jemand bedeutet, wenn Sie sagen "virtuelle Maschine". So...
Ein Docker-container ist nur ein Prozess (und seine Kinder), ist aufgeteilt mit cgroups innerhalb des host-system-kernel aus dem rest der Prozesse. Sie können tatsächlich sehen, Ihre Docker-container Prozesse durch ausführen
ps aux
auf dem host. Zum Beispiel, beginnendapache2
"im container" ist gerade erstapache2
als ein spezieller Prozess auf dem host. Es wurde nur aufgeteilt, von anderen Prozessen auf dem Rechner. Es ist wichtig zu beachten, dass die Container existieren nicht außerhalb Ihrer Container-Prozess " zu Leben. Wenn ein Prozess stirbt, wird Ihr container stirbt. Das ist, weil Andockfenster ersetztpid 1
in Ihrem container, die mit Ihrer Anwendung (pid 1
ist normalerweise das init-system). Dieser Letzte Punkt überpid 1
ist sehr wichtig.Soweit das benutzte Dateisystem mit jedem dieser container verarbeitet, Docker verwendet UnionFS-backed-Bilder, das ist, was Sie herunterladen, wenn Sie eine
docker pull ubuntu
. Jedes "Bild" ist nur eine Reihe von Schichten und zugehörigen Metadaten. Das Konzept der Schichtung ist hier sehr wichtig. Jede Schicht ist nur ein Wechsel von der Ebene darunter. Zum Beispiel, wenn Sie eine Datei löschen, die in Ihrem Dockerfile beim erstellen eines Docker-container, Sie sind eigentlich nur die Schaffung einer Schicht auf der Oberseite der letzten Schicht, die sagt: "diese Datei wurde gelöscht". Das ist übrigens der Grund, warum können Sie Sie löschen eine große Datei aus Ihrem Dateisystem, aber das Bild dauert noch bis die gleiche Menge an Speicherplatz. Die Datei ist immer noch da, in den Schichten unterhalb der aktuellen ein. Schichten selbst sind nur tarballs von Dateien. Sie können dies testen, mitdocker save --output /tmp/ubuntu.tar ubuntu
und danncd /tmp && tar xvf ubuntu.tar
. Dann können Sie schauen Sie sich um. All jenen Verzeichnissen, die Aussehen wie lange hashes sind eigentlich die einzelnen Schichten. Jedes enthält Dateien, die (layer.tar
) und Metadaten (json
) mit Informationen zur jeweiligen Schicht. Diese Schichten nur beschreiben, änderungen am Dateisystem gespeichert werden, als eine Schicht "auf" original-Zustand. Beim Lesen der "aktuellen" Daten, das Dateisystem Daten liest, als ob es waren auf der Suche nur auf den obersten Ebenen der Veränderungen. Das ist, warum die Datei scheint gelöscht werden, obwohl es Sie noch gibt, im "früheren" Schichten, weil das Dateisystem ist nur auf der Suche auf den obersten Ebenen. Dies ermöglicht ganz unterschiedliche Container teilen Sie Ihre Dateisystem-Schichten, obwohl einige wesentliche Veränderungen stattgefunden haben kann, um das Dateisystem auf der obersten Ebenen in jedem Behälter. Dies kann sparen Sie eine Menge Speicherplatz, wenn Sie Ihre Container teilen Ihre Basis-image-Ebenen. Jedoch, wenn Sie die mount-Verzeichnisse und-Dateien aus dem host-system in Ihre container durch Bände, die volumes "bypass" die UnionFS, so dass änderungen nicht gespeichert werden, in Schichten.Vernetzung im Andockfenster wird erreicht durch die Verwendung einer ethernet-bridge (genannt
docker0
auf dem host) und virtuellen Schnittstellen für jeden container auf dem host. Es erstellt ein virtuelles Subnetz indocker0
für Ihre Behälter zu kommunizieren "zwischen" den anderen. Es gibt viele Optionen für die Vernetzung hier, einschließlich erstellen von benutzerdefinierte Subnetze für Ihre Container, und die Fähigkeit zu "teilen" Ihr host-Netzwerk-stack für Ihren container direkt zugreifen.Andockfenster bewegt sich sehr schnell. Seine Dokumentation ist einige der besten Dokumentation die ich je gesehen habe. Es ist generell gut geschrieben, prägnant und präzise. Ich empfehle Ihnen, überprüfen Sie die Dokumentation für weitere Informationen, und Vertrauen Sie die Dokumentation über alles, was Sie online Lesen, einschließlich Stack-Überlauf. Wenn Sie spezielle Fragen haben, empfehle ich den Beitritt
#docker
im Freenode IRC und Frage dort (Sie können sogar Freenode ist webchat!).InformationsquelleAutor der Antwort L0j1k
Docker kapselt eine Anwendung mit allen seinen Abhängigkeiten.
Einen virtualizer kapselt ein OS laufen können alle Anwendungen, die es können, laufen normalerweise auf eine bare-metal-Maschine.
InformationsquelleAutor der Antwort Giovanni De Gasperis
Beide sind sehr unterschiedlich. Docker ist leicht und nutzt LXC/libcontainer (die stützt sich auf kernel-Namensräume und cgroups) und keine Maschine/hardware-emulation wie hypervisor, KVM. Xen-die sind schwer.
Docker und LXC gemeint ist, mehr für eine Sandbox, Container -, und resource isolation. Es verwendet die host-OS (momentan nur Linux-kernel), Klon-API bietet die Verwendung von Namensräumen für IPC, NS (mount), Netzwerk -, PID -, UTS, etc.
Was über Speicher, I/O, CPU, etc? Gesteuert wird mit cgroups, wo können Sie Gruppen anlegen, die mit bestimmten Ressourcen (CPU, Speicher, etc.) Spezifikation/Einschränkung und stellen Sie Ihre Prozesse. Oben auf LXC, Docker bietet ein Speicher-backend (http://www.projectatomic.io/docs/filesystems/) z.B. union-mount-Dateisystem, in dem Sie Ebenen hinzufügen und teilen Sie Lagen zwischen verschiedenen mount-namespaces.
Dies ist ein mächtiges feature, wo die Basis-Bilder sind in der Regel schreibgeschützt und nur, wenn der container ändert etwas in der Schicht wird es etwas schreiben, Lesen-schreiben-partition (ein.k.ein. copy-on-write). Es bietet auch viele andere Verpackungen wie Registrierung und Versionierung von Bildern.
Mit normalen LXC Sie brauchen, um zu kommen mit einigen rootfs oder teilen Sie die rootfs und die, wenn Sie geteilt werden, und die änderungen werden auf andere Container. Aufgrund der Menge der diese zusätzlichen Funktionen, Docker ist beliebter als LXC. LXC ist sehr beliebt in embedded-Umgebungen, die für die Umsetzung von Sicherheit in Prozessen ausgesetzt, die zu externen Institutionen wie das Netzwerk und der Benutzeroberfläche. Docker ist beliebt in der cloud für multi-tenancy-Umgebung, wo gleichbleibende Produktionsumgebung zu erwarten ist.
Einer normalen VM (z.B. VirtualBox und VMware) verwendet einen hypervisor und Verwandte Technologien entweder über dedizierte firmware, wird die erste Schicht für die erste-Betriebssystem (host-OS, oder das Gast-OS 0) oder eine software, die läuft auf dem host OS hardware-emulation, wie CPU, USB - /Zubehör, Speicher, Netzwerk, etc., der Gast-Betriebssysteme. VMs sind immer noch (ab 2015) beliebt in high-security multi-tenant-Umgebung.
Docker/LXC kann man fast auf jedem Billig-hardware (weniger als 1 GB Arbeitsspeicher ist auch OK, solange Sie haben einen neueren kernel) im Vergleich zu normalen VMs müssen Sie mindestens 2 GB Arbeitsspeicher, etc., zu tun, etwas sinnvolles mit ihm. Aber Docker-Unterstützung auf dem host-OS nicht verfügbar in OS wie Windows (ab Nov 2014) wo kann Arten von VMs können ausgeführt werden, auf windows, Linux und Macs.
Hier ist ein pic von docker/rightscale :
InformationsquelleAutor der Antwort resultsway
1. Leichte
Dies ist wahrscheinlich der erste Eindruck für viele Andockfenster Lernenden.
Erste, docker-images sind in der Regel kleiner als VM-images, die macht es einfach zu erstellen, zu kopieren, zu teilen.
Zweite, Docker Container starten kann in mehrere Millisekunden, während die VM startet in Sekunden.
2. Layered File System
Dies ist ein weiteres key-feature von Docker. Bilder mit Ebenen und verschiedene Bilder teilen können Schichten, macht es sogar noch platzsparender und schneller zu bauen.
Wenn alle Container verwenden, Ubuntu als Basis von Bildern, nicht jedes Bild hat seinen eigenen file-system, sondern teilen die gleiche unterstreichen ubuntu-Dateien, und unterscheidet sich nur in Ihre eigenen Anwendungsdaten.
3. Shared-OS-Kernel
Denke, dass der Container als Prozesse!
Alle Container auf einem host ausgeführt werden, ist in der Tat eine Reihe von Prozessen mit unterschiedlichen Dateisystemen. Sie teilen die gleichen Betriebssystem-kernel, nur kapselt system-Bibliothek und Abhängigkeiten.
Dies ist gut für die meisten Fälle(keine zusätzlichen Betriebssystem-kernel verwaltet), aber es kann ein problem sein, wenn die strikte Isolierungen sind erforderlich, zwischen den Containern.
Warum es wichtig ist?
Alle diese scheinen, wie Verbesserungen, nicht revolution. Gut, quantitative Akkumulation führt zu einer qualitativen transformation.
Denken über die Anwendungsbereitstellung. Wenn wir wollen, dass der Bereitstellung einer neuen software(service) oder ein upgrade, es ist besser, ändern Sie die config-Dateien und Prozesse, anstelle der Erstellung einer neuen VM. Da das Erstellen einer VM mit aktualisierten Dienst, Prüfung(Freigabe zwischen Dev & QA), von der Bereitstellung bis zur Produktion dauert Stunden, selbst Tagen. Wenn etwas schief geht, hast du wieder anfangen, Sie zu verschwenden noch mehr Zeit. So, mithilfe von configuration-management-Tools(puppet, saltstack, chef, etc.) so installieren Sie neue software herunterladen, neue Dateien werden bevorzugt.
Wenn es um docker, es ist unmöglich, auf ein neu erstellte docker-container um die alten zu ersetzen. Wartung ist viel einfacher!Aufbau eines neuen image, teilen Sie es mit QS, testen, implementieren es dauert nur Minuten(wenn alles automatisiert ist), Stunden im schlimmsten Fall. Dies wird als unveränderlich Infrastruktur: nicht pflegen(aktualisieren) von software, erstellen Sie eine neue one statt.
Verwandelt, wie die Dienstleistungen geliefert werden. Wir möchten, dass Anwendungen, aber aufrecht zu erhalten, VMs(das ist ein Schmerz und hat wenig zu tun mit unseren Anwendungen). Docker macht Sie konzentrieren sich auf Anwendungen und glättet alles.
InformationsquelleAutor der Antwort cizixs
Docker, im Grunde Containern, unterstützt OS-Virtualisierung D. H. Ihre Anwendung ist der Ansicht, es hat eine komplette Instanz eines OS in der Erwägung, dass VM unterstützt hardware-Virtualisierung. Fühlen Sie sich wie es ist eine physische Maschine, in die man Booten kann jedem OS.
In Hafenarbeiter, die Container laufen, teilen sich das host-OS-kernel, während in der VMs-Sie haben Ihre eigenen OS-Dateien. Die Umgebung (OS), in dem Sie eine Anwendung entwickeln, wäre dasselbe, wie wenn Sie bereitstellen, um verschiedene serving-Umgebungen, wie "Test" oder "Produktion".
Zum Beispiel, wenn Sie entwickeln ein web-server läuft auf port 4000, wenn Sie bereitstellen, um Ihre "Test" - Umgebung, dass der port wird bereits von einem anderen Programm, so dass es nicht mehr funktioniert. In Containern befinden sich die Schichten, werden alle änderungen, die Sie vorgenommen haben, um das OS würde gespeichert werden in einer oder mehreren Schichten und diese Schichten wäre ein Teil des Bildes, also wo geht das Bild der Abhängigkeiten wäre auch anwesend.
Im unten abgebildeten Beispiel ist die host-Maschine hat drei VMs. Um die Anwendungen in den VMs vollständige isolation, Sie haben jeweils Ihre eigenen Kopien von OS-Dateien, Bibliotheken und Anwendungs-code, zusammen mit einem full in-memory-Instanz eines Betriebssystems.
In der Erwägung, dass die Abbildung unten zeigt das gleiche Szenario mit Containern. Hier, Container teilen einfach das host-Betriebssystem, einschließlich der kernel und Bibliotheken, so brauchen Sie nicht, um das Booten von OS, Bibliotheken zu laden, bezahlen oder ein eigenes memory-Kosten für diese Dateien. Den nur inkrementelle Raum nehmen Sie alle Speicher-und Festplattenplatz nötig, für die Ausführung der Anwendung in den container. Während die Umgebung der Anwendung fühlt sich wie eine gewidmet OS, die Anwendung setzt nur, wie es wäre auf einem dedizierten host. Der Container-Anwendung startet in Sekunden und viele weitere Instanzen der Anwendung können auf der Maschine als in der VM-Fall.
Quelle: https://azure.microsoft.com/en-us/blog/containers-docker-windows-and-trends/
InformationsquelleAutor der Antwort Ali Kahoot
In Bezug auf:-
Meiste software wird eingesetzt, um viele Umgebungen, in der Regel mindestens drei der folgenden:
Dort sind auch die folgenden Faktoren zu berücksichtigen:
Wie Sie sehen können die hochgerechnete Gesamtzahl der Server für eine organisation ist nur selten in einzelnen Figuren, ist sehr oft in dreifach-Figuren und kann problemlos noch deutlich höher.
Dies alles bedeutet, dass die Erstellung konsistenter Umgebungen, in der ersten Ort ist schwer genug, nur weil die schiere Volumen (auch in einem grünen Feld-Szenario), aber halten Sie konsequent alle, aber unmöglich angesichts der hohen Anzahl von Servern, Ergänzung von neuen Servern (dynamisch oder manuell), automatische updates von o/s-Anbietern, die anti-virus-Lieferanten, browser-Anbieter und dergleichen, Handbuch, software installiert oder änderungen an der Konfiguration durchgeführt, die von Entwicklern oder server Techniker usw. Lassen Sie mich wiederholen, dass - es ist praktisch (kein Wortspiel beabsichtigt) für unmöglich zu halten-Umgebungen konsistent (okay, für die Puristen, es kann getan werden, aber es beinhaltet eine riesige Menge von Zeit, Mühe und Disziplin, das ist genau, warum VMs und Container (z.B. Docker) wurden entwickelt in der ersten Ort).
Also denken Sie an Ihre Frage, die mehr wie dieser "Angesichts der extremen Schwierigkeit, dass alle Umgebungen konsistent ist, ist es einfacher, die Bereitstellung von software zu einem docker-image, auch wenn man die Lernkurve berücksichtigt ?". Ich glaube, Sie finden die Antwort wird immer "ja" - aber es gibt nur einen Weg, das herauszufinden, poste diese neue Frage auf Stack Overflow.
InformationsquelleAutor der Antwort Greg Trevellick
Es gibt drei verschiedene setups bietet einen stack, eine Anwendung auszuführen, die auf (Dies wird uns helfen, zu erkennen, was ein container ist und was macht es so viel mächtiger ist als andere Lösungen):
1) Traditionellen server stack besteht aus einem physischen server läuft ein Betriebssystem und Ihre Anwendung.
Vorteile:
Nutzung von Rohstoffen
Isolation
Nachteile:
2) Die VM-stack bestehen aus einem physischen server läuft ein Betriebssystem-und hypervisor verwaltet Ihre virtuellen Computer, freigegebenen Ressourcen, und Netzwerk-Schnittstelle. Jede Vm läuft ein Gast-Betriebssystem, eine Anwendung oder eine Reihe von Anwendungen.
Vorteile:
Nachteile:
3) Die Container Setupder wesentliche Unterschied mit anderen stack-container-basierte Virtualisierung nutzt den kernel des host OS rum mehrere isolierte Gast-Instanzen. Diese Gast-Instanzen genannt werden als Container. Der host kann entweder auf einem physischen server oder VM.
Vorteile:
Nachteile:
Durch den Vergleich der container-Aufbau mit seinem Vorgänger, können wir schließen, dass die Containerisierung ist der Schnellste, die meisten Ressourcen effektiv, und die meisten secure-setup, die wir kennen bisher. Container sind Einzelfälle, die Ihre Anwendung ausführen. Andockfenster drehen Sie den container in einer Weise, die Schichten laufen zu bekommen-Zeit-Speicher mit den Standard-Treibern(Overlay-Treiber) diese laufen innerhalb von Sekunden und copy-on-write-Schicht wurde über Sie, sobald wir Begehen in den Behälter, dass die Befugnisse der Ausführung der Container. Im Falle von VM ' s, dass dauert ungefähr eine minute zum laden, und alles in der Umgebung virtualisieren. Diese leichte Instanzen ersetzt werden können, wieder aufzubauen, und zog einfach um. Dies ermöglicht es uns, spiegeln die Entwicklung und Produktion Umwelt und ist große Hilfe in der CI/CD-Prozesse. Die Vorteile von Containern bereitstellen können, sind so überzeugend, dass Sie auf jeden Fall hier zu bleiben.
InformationsquelleAutor der Antwort mohan08p
Gibt es viele Antworten, die erklären, detaillierter auf die Unterschiede, aber hier ist meine sehr kurze Erklärung.
Ein wichtiger Unterschied ist, dass VMs verwenden einen separaten kernel zu laufen, die OS. Das ist der Grund, es ist schwer und braucht Zeit zum starten, verbraucht mehr Systemressourcen.
In Hafenarbeiter, die Container teilen sich den kernel mit dem host; daher ist es leicht und kann starten und zu stoppen schnell.
In der Virtualisierung werden die Ressourcen zugeteilt werden, die Anfang einrichten und damit die Ressourcen nicht vollständig genutzt werden, wenn die virtuelle Maschine im Leerlauf ist in vielen Zeiten.
In Hafenarbeiter, die Container werden nicht verrechnet mit dem Betrag von hardware-Ressourcen und ist kostenlos zu nutzen, die Ressourcen je nach Anforderungen und ist daher stark skalierbar.
Docker verwendet UNION File system .. Docker verwendet eine copy-on-write-Technologie zur Verringerung der Speicherplatz verbraucht von Containern. Lesen Sie hier mehr
InformationsquelleAutor der Antwort Jayabalan Bala
Mit einem virtuellen Maschinewir haben einen server, haben wir eine host-Betriebssystem auf diesem server, und dann haben wir ein hypervisor. Und dann läuft auf der Oberseite des hypervisor, wir haben eine beliebige Anzahl von Gast-Betriebssystemen mit einer Anwendung und Ihrer abhängigen Binärdateien und-Bibliotheken auf diesem server. Es bringt eine ganze Gast-Betriebssystem. Es ist ein ziemlich schwerfälliges. Auch gibt es ein limit, wie viel Sie können tatsächlich auf jeder physischen Maschine.
Docker-Container auf der anderen Seite, sind etwas anders. Wir haben den server. Wir haben das host-Betriebssystem. Aber stattdessen ein hypervisorwir haben die Docker enginein diesem Fall. In diesem Fall sind wir nicht, bringt die ganze Gastbetriebssystem mit uns. Wir bringen eine sehr dünne Schicht des Betriebssystemsund der Behälter kann unten sprechen in das host-Betriebssystem, um die kernel-Funktionalität. Und das erlaubt uns, eine sehr leichte container.
Alle, die Sie in es ist die Anwendung, die Codes und Binärdateien und Bibliotheken, die es benötigt. Und die Binärdateien und Bibliotheken kann tatsächlich sein, gemeinsam über verschiedene Behälter, wenn Sie wollen, dass Sie als gut. Und was dies ermöglicht es uns zu tun ist, ist eine Reihe von Dingen. Sie haben viel schnellere startup Zeit. Sie können es nicht ertragen, eine einzige VM in ein paar Sekunden so. Und ebenso, wobei Sie so schnell.. so können wir die Skala nach oben und unten sehr schnell und wir sehen uns das später an.
Jeder container denkt, läuft es auf seine eigene Kopie des Betriebssystems. Es hat ein eigenes Dateisystem, Registrierung, etc. das ist eine Art von Lüge. Es ist tatsächlich virtualisiert.
InformationsquelleAutor der Antwort Nedzad G
Habe ich verwendet Docker in Produktions-und staging-Umgebungen sehr viel. Wenn Sie sich daran gewöhnen, werden Sie finden es sehr leistungsfähig für den Aufbau einer multi-container und isolierte Umgebungen.
Andockfenster wurde entwickelt auf der Basis von LXC (Linux Containers) und funktioniert perfekt in viele Linux-Distributionen, insbesondere Ubuntu.
Docker-Container sind isolierte Umgebungen. Sie können sehen, wenn Sie den
top
Befehl in einem Docker-container, die erstellt wurde von einem Docker-image.Abgesehen davon, Sie sind sehr leicht und flexibel Dank der dockerFile-Konfiguration.
Zum Beispiel, können Sie erstellen ein Docker-image, und konfigurieren Sie ein DockerFile und sagen, dass zum Beispiel, wenn es läuft, dann wget 'das' apt-get ',' führen 'manche shell-Skript', das setzen von environment-Variablen, und so weiter.
In micro-services-Projekten und-Architektur von Docker ist eine sehr praktikable asset. Erreichen Sie Skalierbarkeit, Flexibilität und Elastizität mit Docker, Docker swarm, Kubernetes und Docker Compose.
Ein weiteres wichtiges Thema in Bezug auf Andockfenster Andockfenster Hub und seine Gemeinschaft.
Zum Beispiel habe ich umgesetzt, ein ökosystem für die überwachung von kafka mit Prometheus, Grafana, Prometheus-JMX-Exporteur, und Dokcer.
Dafür, dass ich heruntergeladen, konfiguriert Docker-Container für Tierpfleger, kafka, Prometheus, Grafana-und jmx-collector mounted dann meine eigene Konfiguration für einige von Ihnen mit yml-Dateien oder für andere, die ich verändert einige Dateien und die Konfiguration in die Docker-container und ich bauen ein ganzes system für die überwachung von kafka mit multi-container-Andockfenster, auf einer einzigen Maschine mit isolation und Skalierbarkeit und Ausfallsicherheit mit dieser Architektur lässt sich problemlos in mehrere Server.
Neben dem Docker Hub-Standort es gibt eine andere Website namens Kai.io, die Sie verwenden können, um Ihr eigenes Docker-images dashboard gibt, und ziehen/drücken an/aus. Sie können auch importieren, die Docker images aus dem Docker Hub zur Uferstraße, dann läuft Sie von der Uferstraße auf Ihre eigene Maschine.
Hinweis: Lernen Andockfenster in der ersten Stelle scheint Komplex und schwierig, aber wenn man sich daran gewöhnt dann kann man nicht arbeiten, ohne es.
Ich erinnere mich an die ersten Arbeitstage mit Docker, wenn gab ich die falschen Befehle oder entfernen von meinem Container und alle Daten und Konfigurationen fälschlicherweise.
InformationsquelleAutor der Antwort Touraj Ebrahimi
Dies ist, wie Andockfenster stellt sich vor:
So Andockfenster ist container-basierte, das heißt, Sie haben die Bilder und die Container, die ausgeführt werden können, auf Ihre aktuelle Maschine. Es ist nicht wie das Betriebssystem wie VMs, aber wie ein Rudel von verschiedenen packs wie Java, Tomcat, etc.
Wenn Sie verstehen, Container, bekommen Sie, was Docker ist, und wie unterscheidet es sich von VMs...
Also, was ist ein container?
So, wie Sie sehen im Bild unten, jeder container hat einen separaten pack und läuft auf einem einzigen Computer teilen, die Maschine, das Betriebssystem... Sie sind sicher und einfach zu versenden...
InformationsquelleAutor der Antwort Alireza
Gibt es viele nette technische Antworten hier, klar diskutieren Sie die Unterschiede zwischen VMs und Container, sowie die Ursprünge des andockfensters.
Für mich der grundlegende Unterschied zwischen VMs und Docker ist, wie Sie es schaffen die Förderung Ihrer Anwendung.
Mit VMs, die Sie fördern, Ihre Anwendung und Ihre Abhängigkeiten von einer VM auf die nächste DEV zu UAT zu PRD.
Mit Docker die Idee ist, dass Sie bündeln Ihre Anwendung in einem eigenen Behälter zusammen mit den Bibliotheken, die es braucht, und dann fördern die ganze Behälter als eine Einheit.
Also auf der grundlegendsten Ebene mit VMs, die Sie fördern, die Anwendung und deren Abhängigkeiten als diskrete Komponenten in der Erwägung, dass mit dem Andockfenster " Sie fördern alles, was in einem Treffer.
Und ja, es gibt Probleme mit Containern einschließlich der Verwaltung von Ihnen, obwohl tools wie Kubernetes oder Docker Swarm stark vereinfacht die Aufgabe.
InformationsquelleAutor der Antwort TJA
Quelle: Kubernetes in Aktion.
InformationsquelleAutor der Antwort TastyCode