Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten.
Vor 5 Jahren geschlossen.
Verbessern Sie diese Frage
Während Sie mehr über Container recherchieren und lernen, scheint Docker eine großartige Dokumentation und Anwendungsbeispiele mit Schritt-für-Schritt-Anleitungen zu haben. Auf der anderen Seite hat LXD nur eine einfache Anleitung zum Einstieg. Welche Quellen da draußen hätten eine gute Dokumentation zu LXD, die ich mir ansehen könnte?
Akzeptierte Antwort:
LXC vs. LXD
Blog-Beiträge sind nett und informativ und gut zu lesen, um loszulegen, aber sie sind keine gute Dokumentation, wenn Sie einmal angefangen haben. Wenn Sie wie ich sind, ist Ihnen der Unterschied zwischen Docker und LXC/LXD vielleicht ziemlich klar, nachdem Sie nur ein paar häufig gefundene Blogbeiträge dazu gelesen haben. Aber der Unterschied zwischen dem älteren LXC-Projekt und dem neuen LXD-Projekt war nicht gleich Alles klar für mich, und die meisten Seiten, die ich gefunden habe, leisten einfach keine gute Arbeit, um es auf eine Weise zu erklären, die ich verstehen könnte. Meist versuchen sie, die Verwechslung zwischen einem Anwendungscontainer (Docker) und einem Betriebssystemcontainer (LXC/LXD) zu beseitigen. Dann habe ich diesen Blogbeitrag gefunden:Wo passt lxd hin?
Wie Sie vielleicht inzwischen wissen, verwenden alle diese Tools (Docker/LXC/LXD) gemeinsame Kernel-Funktionen wie Namespaces und Cgroups, es ist nur eine Frage, wie Userspace entscheidet, sie zu verwenden. Eine Zusammenfassung des obigen Beitrags konzentrierte sich auf die Entwicklung von LXC vs. LXD, basierend auf meinem Verständnis:
- LXC wurde ursprünglich erstellt, um die neuen Kernel-Features zu testen; als solches war es ein Mischmasch aus Shell-Skripten und C-Programmen (die heute noch über die „alten“ LXC-Befehlszeilentools verwendet werden).
- Dann wurde dies in eine Bibliothek umgestaltet. Vorhandene LXC-Userspace-Befehlszeilentools verwenden jetzt diese Bibliothek.
- LXD ist eine grundlegende Art der Schnittstelle mit dieser Bibliothek, die nicht durch Abwärtskompatibilität mit den alten LXC-Befehlszeilentools belastet ist. Daher ist es einfacher zu verwenden und leistungsfähiger.
Falls irgendjemand (zB ein Betreuer) oben einige Fehler sieht, kann er meine Antwort gerne korrigieren. 🙂
Einige Anmerkungen zu libvirt-lxc
Auch für den Fall, dass Sie libvirt-lxc in Betracht ziehen (zB wenn Sie bereits libvirt verwenden mit KVM):
- Red Hat hat dies als veraltet markiert:https://access.redhat.com/articles/1365153
- Upstream sagt, dass sie noch daran arbeiten werden:https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
- Obwohl
libvirt-lxchatlxcim Namen, es verwendet nicht wirklichlxcund verwendet stattdessen direkt die Kernelfunktionen. Verwechseln Sie dieselibvirtalso nicht Treiber mitlxctrotz Namensverwirrung. Referenz:http://libvirt.org/drvlxc.html (Beachten Sie, dass ich denke, dass proxmox das tut Verwenden Sielxcrichtig, aber nicht das neuerelxdWerkzeuge). - Stéphane Graber schlägt vor,
libvirtzu verwenden mit Containern ist eine schlechte Passform, und das, obwohl jemand durchaus einelibvirt-lxdschreiben könnte , er denkt, dass es auch eine schlechte Passform ist. Zusammengefasst:libvirtwurde entwickelt, um VMs zu verwalten, und Container sind keine VMs, sodass die Dinge chaotisch werden und Sie nur einen gemeinsamen Nenner von Funktionen unterstützen. Referenz:https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html - Um das Vorherige zu verstärken, ist es nicht so einfach, neue Container mit
libvirt-lxczu erstellen . Beispielsweise müssen Sie ihm einen Pfad zu einem VORHANDENEN rootfs für einen neuen Container geben, den Sie erstellen möchten, und es gibt keine Unterstützung inlibvirt-lxcum das aufzudrehen. Sie müssen also Dinge wie die Verwendung externer Tools wielxc-createtun um einen neuen Container aus einer Vorlage zu erstellen, und erstellen Sie dann einen neuenlibvirt-lxcContainer, der das gerade erstellte vorhandene Verzeichnis verwendet, was mich dann fragen lässt:„Warum sich mitlibvirt-lxcaufhalten anstatt nurlxdzu verwenden direkt?“
LXD-Dokumentation
Zurück zu Ihrer Frage:Ich habe versucht, alle Referenzdokumentationen zu LXD zusammenzustellen, die ich finden konnte. Hier gibt es eine nette Dokumentation:
https://github.com/lxc/lxd/tree/master/doc
Insbesondere:
configuration.mdhat eine schöne Referenzliste möglicher Konfigurationsoptionen.imagehandling.mdspricht darüber, wie Betriebssystem-Images lokal zwischengespeichert werden.lxd-ssl-authentication.mderläutert die REST-API und wie sie sowohl über einen lokalen UNIX-Socket als auch optional über HTTPS verfügbar gemacht wird und wie dies gesichert wird.storage-backends.mdbespricht die Einschränkungen und die Konfiguration jedes Speicher-Backends.userns-idmap.mdlxd verwendet standardmäßig unprivilegierte Container, was bedeutet, dass die Container-UID/GID einer Host-UID/GID zugeordnet werden muss; das bespricht das.- Ein Großteil der verbleibenden Dokumentation ist nicht so kritisch zu lesen oder richtet sich eher an Entwickler.
Die obigen Links stammen vom Hauptzweig von lxd Upstream, also sollten Sie das doc überprüfen Verzeichnis für die Quellen des Pakets, das Sie tatsächlich installiert haben, damit Sie nicht versehentlich eine neue Funktion verwenden, die Sie noch nicht installiert haben.
Es gibt nicht wirklich viele Manpages, aber hier ist, was ich in lxd gefunden habe und lxd-client Pakete:
LXC(1)– Client-Programm zur Kommunikation mit dem Server-Daemon. Aktuell (14.05.2016) eher nutzlos und wenig aussagekräftig. Hoffentlich kann in Zukunft eine Reihe von Manpages für dieses Tool erstellt werden, ähnlich wiebtrfsHilfeseiten.LXD(1)– Server-Daemon-Befehlszeile.
Natürlich gibt es auch die Server-Guide-Seite:https://help.ubuntu.com/lts/serverguide/lxd.html
Denken Sie schließlich daran, dass lxd auf der lxc-Bibliothek basiert (aber nicht auf den alten lxc-Befehlszeilentools). Das bedeutet, dass die lxc-Konfiguration weiterhin direkt durchgeführt werden kann, z. mit raw.lxc Konfigurationsoption in lxd. Daher ist ein Hinweis auf die zugrunde liegende LXC-Konfiguration nützlich, aber denken Sie daran, dass dies nach Möglichkeit vermieden werden sollte, um einen Konflikt mit LXD zu vermeiden (z. B. wenn Sie dasselbe Konfigurationselement in LXD und LXC festlegen). Sie können die Manpages durchsuchen, um diese bei Bedarf zu finden:https://linuxcontainers.org/lxc/manpages/