it-swarm.com.de

Was ist der Unterschied zwischen Docker, LXD und LXC?

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

178
Ijaz Ahmad Khan

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

LXC

LinuX Containers (LXC) ist eine Virtualisierungsmethode auf Betriebssystemebene zum Ausführen mehrerer isolierter Linux-Systeme (Container) auf einem einzelnen Steuerungshost (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
  • also kannst du: Build, Ship, and Run Any App, Anywherehttp://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

(Infographic of 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/

Kleinere technische Anmerkung

143
clarity123

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

(lxc x docker

Allen gemeinsam ist, dass alle diese drei Technologien mit Containern zusammenhängen.

Container sind ein einfacher Virtualisierungsmechanismus, bei dem Sie keine virtuelle Maschine auf einer Emulation physischer Hardware einrichten müssen. Unter Linux haben sie die verwendeten Kernel-Funktionen gemeinsam: cgroups, namespaces(ipc, network, user, pid, mount). Sie versuchen auch, sicherere Umgebungen zu schaffen, indem sie nicht privilegierte Container erstellen und in Sicherheitsfunktionen wie selinux integrieren. Diese Technologien exportieren APIs, um sie besser in andere Software zu integrieren.

LXD und LXC

Diese beiden integrieren die gleiche Familie wobei:

  • lxc : Benutzerbereichsschnittstelle für die Linux-Kernel-Containment-Funktionen. Dies ist der Typ, der Kernel-Namespaces, Apparmor- und SELinux-Profile, Chroots, Kernel-Funktionen 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 lxc mehr Flexibilität und Funktionen zu bieten, während er es immer noch unter der Haube verwendet.

Grundsätzlich wird mit der isolierten Infrastruktur ein eigenständiger Betriebssystem-Userpace erstellt. lxc basiert direkter auf Betriebssystemfunktionen für Netzwerk und Speicher als Docker.

Sie erstellen viele virtuelle Maschinen mit Benutzerbereichs- und Kernel-Isolationen, aber sie sind keine vollständigen virtuellen Maschinen, da sie keine getrennten Kernel ausführen und 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, da es sich bei der Engine um die größte handelt, die Anwendungen mit einem in sich geschlossenen Dateisystem anstelle eines Basis-Userspace-Images 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. 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 Anbietern verwaltet.

Docker. INC. Ist hier der Hauptsponsor. VMware ist investiert auch in diese Technologie.

Verwandte Containertechnologie:

Dies sind andere Containertechnologien, über die Linux verfügt: OpenVZ und Linux-VServer

Verwandte Dinge:

75
user34720