Vuoi migliorare questa domanda? Aggiorna la domanda in modo che si concentri su un solo problema modificando questo post.
Chiuso 5 anni fa.
Migliora questa domanda
Durante la ricerca e l'apprendimento di più su Containers, Docker sembra avere un'ottima documentazione ed esempi di casi d'uso con guide passo passo. Mentre d'altra parte LXD ha solo una semplice guida introduttiva. Quali fonti là fuori avrebbero una buona documentazione su LXD che potrei dare un'occhiata?
Risposta accettata:
LXC vs LXD
I post del blog sono belli, informativi e buoni da leggere per iniziare, ma una buona documentazione non fanno una volta che hai iniziato. Se sei come me, potresti essere abbastanza chiaro sulla differenza tra Docker e LXC/LXD dopo aver letto solo alcuni post di blog comunemente trovati su questo.. Ma la differenza tra il vecchio progetto LXC e il nuovo progetto LXD non era a tutto è chiaro per me e la maggior parte delle pagine che ho trovato non fanno un buon lavoro spiegandolo in un modo che potrei capire. Per lo più cercano di chiarire la confusione tra un contenitore di applicazioni (Docker) e un contenitore di sistema operativo (LXC/LXD). Poi ho trovato questo post sul blog:Dove si inserisce lxd
Come forse ormai saprai, tutti questi strumenti (Docker/LXC/LXD) utilizzano funzionalità comuni del kernel come namespace e cgroup, è solo una questione di come lo spazio utente decide di usarli. Un riepilogo del post sopra incentrato sull'evoluzione di LXC vs LXD, in base alla mia comprensione:
- LXC è stato originariamente creato per testare le nuove funzionalità del kernel; in quanto tale era un miscuglio di script di shell e programmi C (utilizzati ancora oggi tramite i "vecchi" strumenti a riga di comando LXC).
- Quindi questo è stato rifattorizzato in una libreria. Gli strumenti a riga di comando dello spazio utente LXC esistenti utilizzano questa libreria ora.
- LXD è un modo semplice di interfacciarsi con questa libreria che non è gravata dalla compatibilità con le versioni precedenti dei vecchi strumenti da riga di comando LXC. Quindi è più facile da usare e più capace.
Se qualcuno (come un manutentore) vede alcuni errori sopra, non esitare a correggere la mia risposta. 🙂
Alcune note su libvirt-lxc
Inoltre, nel caso tu stia considerando libvirt-lxc
(es. se stai già usando libvirt
con KVM):
- Red Hat ha deprecato questo:https://access.redhat.com/articles/1365153
- A monte dice che ci lavoreranno ancora:https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
- Anche se
libvirt-lxc
halxc
nel nome, in realtà non usalxc
e invece utilizza direttamente le funzionalità del kernel. Quindi non confondere questolibvirt
driver conlxc
nonostante la confusione dei nomi. Riferimento:http://libvirt.org/drvlxc.html (nota che penso che proxmox fa usalxc
corretto, ma non il nuovolxd
strumenti). - Stéphane Graber suggerisce di usare
libvirt
con i container non va bene, e mentre qualcuno potrebbe plausibilmente scrivere unlibvirt-lxd
, pensa che sia anche una misura scadente. In sintesi:libvirt
è progettato per gestire le macchine virtuali e i contenitori non sono macchine virtuali, quindi le cose si complicano e si supporta solo un denominatore comune di funzionalità. Riferimento:https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html - Per rafforzare il precedente, non è così facile creare nuovi container con
libvirt-lxc
. Ad esempio, devi dargli un percorso a un rootfs ESISTENTE per un nuovo contenitore che vuoi creare e non c'è supporto inlibvirt-lxc
per farlo girare. Questo ti lascia fare cose come usare strumenti esterni comelxc-create
per creare un nuovo contenitore da un modello, quindi creare un nuovolibvirt-lxc
container usando quella directory esistente appena creata, che poi mi fa chiedere:"perché agitarsi conlibvirt-lxc
invece di usare semplicementelxd
direttamente?"
Documentazione LXD
Tornando alla tua domanda, ho provato a riunire tutta la documentazione di riferimento su LXD che ho trovato. C'è della bella documentazione qui:
https://github.com/lxc/lxd/tree/master/doc
In particolare:
configuration.md
ha una bella lista di riferimento di possibili opzioni di configurazione.imagehandling.md
parla di come le immagini del sistema operativo vengono memorizzate nella cache in locale.lxd-ssl-authentication.md
discute l'API REST e come viene esposta sia su un socket UNIX locale, sia facoltativamente su HTTPS, e come questa è protetta.storage-backends.md
discute le limitazioni e la configurazione di ogni back-end di archiviazione.userns-idmap.md
lxd per impostazione predefinita utilizza contenitori senza privilegi, il che significa che l'UID/GID del contenitore deve essere mappato su un UID/GID host; questo ne discute.- Gran parte della documentazione rimanente non è così critica da leggere o è più orientata agli sviluppatori.
I link di cui sopra provengono dal ramo principale di lxd
a monte, quindi potresti voler controllare il doc
directory per i sorgenti del pacchetto che hai effettivamente installato, in modo da non utilizzare accidentalmente alcune nuove funzionalità che non hai ancora installato.
Non ci sono molte pagine man, ma ecco cosa ho trovato incluso in lxd
e lxd-client
pacchetti:
LXC(1)
– programma client per comunicare con il demone del server. Attualmente (14/5/2016) piuttosto inutile e disinformativo. Si spera che in futuro si possano creare una serie di pagine man per questo strumento, proprio comebtrfs
pagine man.LXD(1)
– riga di comando del demone del server.
Naturalmente, c'è anche la pagina della guida del server:https://help.ubuntu.com/lts/serverguide/lxd.html
Infine, ricorda che lxd è basato sulla libreria lxc (ma non sui vecchi strumenti da riga di comando di lxc). Ciò significa che la configurazione lxc può ancora essere eseguita direttamente, ad es. utilizzando raw.lxc
opzione di configurazione in lxd. Pertanto è utile qualche riferimento alla configurazione LXC sottostante, ma ricorda che dovrebbe essere evitato se possibile per evitare un conflitto con LXD (ad esempio se imposti lo stesso elemento di configurazione sia in LXD che in LXC). Puoi sfogliare le manpage per trovarle, se necessario:https://linuxcontainers.org/lxc/manpages/