Was ist der Unterschied zwischen Docker, LXD und LXC?

163

Was ist der Unterschied zwischen Docker, LXD und LXC? Bieten sie die gleichen oder unterschiedliche Dienstleistungen an?

Ijaz Ahmad Khan
quelle
1
Fand dieses als nützlich. neueste und beste Infos. people.canonical.com/~kirkland/…
Ijaz Ahmad Khan
Eine sehr gute Erklärung unter infoworld.com/article/3204171/linux/… . Es wurde erwähnt, dass Although Docker started out as an open source project to build specialized LXC, it later morphed into its own container runtime environmentmehr auf dem Link
Alireza Fattahi

Antworten:

132

Nein, LXC, Docker und LXD sind nicht ganz dasselbe. Zusamenfassend:

LXC

LinuX Containers (LXC) ist eine Virtualisierungsmethode auf Betriebssystemebene zum Ausführen mehrerer isolierter Linux-Systeme (Container) auf einem einzelnen Steuerhost (LXC-Host).

https://wiki.archlinux.org/index.php/Linux_Containers

niedriges Niveau ...

https://linuxcontainers.org/

Docker

  • von Docker, Inc
  • ein Containersystem, das LXC-Container verwendet
  • So können Sie: Build, Ship, and Run Any App, Anywhere http://www.docker.com

LXD

Docker gegen LXD

  • Docker ist auf die Bereitstellung von Apps spezialisiert
  • LXD ist auf die Bereitstellung von (Linux-) virtuellen Maschinen spezialisiert

Infografik von Docker vs LXD

Quelle: http://linux.softpedia.com/blog/infographic-lxd-machine-containers-from-ubuntu-linux-492602.shtml

Ursprünglich: https://insights.ubuntu.com/2015/09/23/infographic-lxd-machine-containers-from-ubuntu/

Kleine technische Anmerkung

Klarheit123
quelle
12
Docker hat LXC seit 2014 nicht mehr unter der Haube benutzt: blog.docker.com/2014/03/…
infomaniac
68

Dieses Bild kann Ihnen helfen, den Hauptunterschied zwischen ihnen zu verstehen:

lxc x docker

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.

LXD und LXC

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.

Docker

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:

Luc
quelle
Ja. Das ist ziemlich neu, da beinhaltet alles, was zfs auf Ubuntu Wada-Wada. Und das ist eine PRÄSENTATION. Achten Sie immer auf PDFs oder PPTs, in denen es Welten wie "besser als das" oder "schnellste Technologie" oder "skalierbarer als Y" gibt ...
5
Ich bin ziemlich skeptisch gegenüber Produkten von Canonical geworden. Sie neigen dazu, sie als das zu bewerben, was sie sein könnten, anstatt als das, was sie sind. Oft, wenn das "sein könnte", ist noch Jahre entfernt.
Orodbhen
Anstatt lxc in Kleinbuchstaben zu verwenden, sollte dies ein Verweis auf liblxc sein. Und was das Tooling betrifft, kann es dann auf 1.x bis 3.x verweisen, wobei lxd (nur der Daemon) nur für liblxc> = 2.0 verfügbar lxcist und das LXD-Client-Programm ist, das der Nachfolger des lxc-*-names ist LXC 1.x Werkzeuge.
0xC0000022L