Dieses Bild kann Ihnen helfen, den Hauptunterschied zwischen ihnen zu verstehen:
Allen gemeinsam ist, dass sich alle diese 3 Technologien auf Container beziehen.
Container sind ein kompakter Virtualisierungsmechanismus, bei dem Sie keine virtuelle Maschine auf einer Emulation physischer Hardware einrichten müssen. Unter Linux haben sie die folgenden Kernel-Funktionen gemeinsam: cgroups
, namespaces(ipc, network, user, pid, mount)
. Sie versuchen auch, sicherere Umgebungen zu schaffen, indem sie nichtprivilegierte Container erstellen und in Sicherheitsfunktionen wie z selinux
. Diese Technologien exportieren APIs, um sie besser in andere Software zu integrieren.
Diese beiden integrieren die gleiche Familie, in der:
- lxc : Userspace-Oberfläche für die Linux-Kernel-Containment-Funktionen. Dies ist der Typ, der Kernel-Namespaces, Apparmor- und SELinux-Profile, Chroots, Kernelfunktionen und alle anderen kernelbezogenen Dinge verwaltet
- lxd : ist ein Container "Hypervisor". Es besteht aus einem Daemon (lxd), der Befehlszeilenschnittstelle (lxc) und einem OpenStack-Plugin. Dieser Typ wurde entwickelt, um dem LXC mehr Flexibilität und Funktionen zu bieten, während er immer noch im Hintergrund verwendet wird.
Grundsätzlich wird ein eigenständiger Betriebssystem-Benutzerbereich mit seiner isolierten Infrastruktur erstellt. lxc liegt den Betriebssystemfunktionen für Netzwerk und Speicher direkter zugrunde als Docker.
Sie erstellen viele virtuelle Maschinen, die über Benutzerbereichs- und Kernelisolierungen verfügen, aber keine vollständigen virtuellen Maschinen sind, da auf ihnen keine getrennten Kernel ausgeführt werden und sie aus demselben Grund auch nicht paravirtualisiert sind.
Canonical ist hier der Hauptsponsor, und Oracle investiert auch Arbeitsstunden in diese Technologie.
Es gibt einige Unterschiede, wobei es sich bei der Engine um die größte handelt, die Anwendungen mit einem eigenständigen Dateisystem anstelle eines Basis- "Userspace-Image" zusammenfasst. Die Idee ist, die App und das Basis-Image zu enthalten, um den Eindruck zu erwecken, dass die App ein einzelner Prozess innerhalb der Engine ist. Docker verwendete die lxc-Technologie als Basis für die Kommunikation mit dem Kernel, verwendet jedoch heute seine eigene Bibliothek, libcontainer .
Das Dateisystem ist eine Abstraktion für Docker, während lxc die Dateisystemfunktionen direkt verwendet. Das Netzwerk ist auch eine Abstraktion, während Sie mit lxc IP-Adressen und Routing-Konfigurationen einfacher einrichten können. Einige "App Store-ähnliche" Websites werden von Microsoft, Amazon, VMware, IBM und anderen Playern gepflegt.
Docker. INC. Ist hier Hauptsponsor. VMware investiert ebenfalls in diese Technologie.
Verwandte Behältertechnik:
Dies sind andere Containertechnologien, über die Linux verfügt: OpenVZ und Linux-VServer
Verwandte Sachen: