Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle se concentre sur un seul problème en modifiant ce message.
Fermé il y a 5 ans.
Améliorer cette question
Tout en recherchant et en apprenant davantage sur les conteneurs, Docker semble disposer d'une excellente documentation et d'exemples de cas d'utilisation avec des guides étape par étape. Alors que d'un autre côté, LXD n'a qu'un simple guide de démarrage. Quelles sources auraient une bonne documentation sur LXD que je pourrais consulter ?
Réponse acceptée :
LXC contre LXD
Les articles de blog sont agréables et informatifs et bons à lire pour commencer, mais une bonne documentation qu'ils ne font pas une fois que vous avez commencé. Si vous êtes comme moi, vous pouvez être assez clair sur la différence entre Docker et LXC/LXD après avoir lu seulement quelques articles de blog courants à ce sujet. Mais la différence entre l'ancien projet LXC et le nouveau projet LXD n'était pas à tout est clair pour moi, et la plupart des pages que j'ai trouvées ne font tout simplement pas un bon travail en l'expliquant d'une manière que je puisse comprendre. Ils essaient principalement de dissiper la confusion entre un conteneur d'application (Docker) et un conteneur de système d'exploitation (LXC/LXD). Ensuite, j'ai trouvé cet article de blog :Où lxd s'intègre-t-il ?
Comme vous le savez peut-être maintenant, tous ces outils (Docker/LXC/LXD) utilisent des fonctionnalités communes du noyau comme les espaces de noms et les cgroups, c'est juste une question de savoir comment l'espace utilisateur décide de les utiliser. Un résumé de l'article ci-dessus axé sur l'évolution de LXC vs LXD, basé sur ma compréhension :
- LXC a été créé à l'origine pour tester les nouvelles fonctionnalités du noyau ; en tant que tel, il s'agissait d'un méli-mélo de scripts shell et de programmes C (toujours utilisés aujourd'hui via les "anciens" outils de ligne de commande LXC).
- Ensuite, cela a été refactorisé dans une bibliothèque. Les outils de ligne de commande de l'espace utilisateur LXC existants utilisent maintenant cette bibliothèque.
- LXD est un moyen d'interfaçage avec cette bibliothèque qui n'est pas encombré par la rétrocompatibilité avec les anciens outils de ligne de commande LXC. Il est donc plus facile à utiliser et plus performant.
Si quelqu'un (comme un responsable) voit des erreurs ci-dessus, n'hésitez pas à corriger ma réponse. 🙂
Quelques notes sur libvirt-lxc
Aussi, au cas où vous considérez libvirt-lxc
(par exemple, si vous utilisez déjà libvirt
avec KVM) :
- Red Hat a abandonné ceci :https://access.redhat.com/articles/1365153
- Upstream indique qu'il continuera à y travailler :https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
- Même si
libvirt-lxc
alxc
dans le nom, il n'utilise pas réellementlxc
et utilise à la place directement les fonctionnalités du noyau. Alors ne confondez pas celibvirt
pilote aveclxc
malgré la confusion des noms. Référence :http://libvirt.org/drvlxc.html (notez que je pense que proxmox fait utilisezlxc
correct, mais pas le nouveaulxd
outils). - Stéphane Graber suggère que l'utilisation de
libvirt
avec des conteneurs est un mauvais ajustement, et que même si quelqu'un pourrait éventuellement écrire unlibvirt-lxd
, il pense que c'est aussi un mauvais ajustement. En résumé :libvirt
est conçu pour gérer les machines virtuelles et les conteneurs ne sont pas des machines virtuelles, donc les choses deviennent désordonnées et vous ne prenez en charge qu'un dénominateur commun de fonctionnalités. Référence :https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html - Pour renforcer le précédent, il n'est pas si facile de créer de nouveaux conteneurs avec
libvirt-lxc
. Par exemple, vous devez lui donner un chemin vers un rootfs EXISTANT pour un nouveau conteneur que vous souhaitez créer, et il n'y a pas de support danslibvirt-lxc
pour faire tourner ça. Cela vous laisse donc faire des choses comme utiliser des outils externes commelxc-create
pour créer un nouveau conteneur à partir d'un modèle, puis créer un nouveaulibvirt-lxc
conteneur utilisant ce répertoire existant qui vient d'être créé, ce qui me laisse ensuite demander :"pourquoi s'embêter aveclibvirt-lxc
au lieu d'utiliser simplementlxd
directement ?"
Documentation LXD
Pour en revenir à votre question, j'ai essayé de rassembler toute la documentation de référence sur LXD que j'ai pu trouver. Il y a une belle documentation ici :
https://github.com/lxc/lxd/tree/master/doc
En particulier :
configuration.md
a une belle liste de référence des options de configuration possibles.imagehandling.md
explique comment les images du système d'exploitation sont mises en cache localement.lxd-ssl-authentication.md
décrit l'API REST et comment elle est exposée à la fois sur un socket UNIX local et éventuellement sur HTTPS, et comment cela est sécurisé.storage-backends.md
décrit les limites et la configuration de chaque backend de stockage.userns-idmap.md
lxd utilise par défaut des conteneurs non privilégiés, ce qui signifie que l'UID/GID du conteneur doit être mappé à un UID/GID hôte ; ceci discute de cela.- Une grande partie de la documentation restante n'est pas aussi critique à lire, ou est plutôt destinée aux développeurs.
Les liens ci-dessus proviennent de la branche principale de lxd
en amont, vous voudrez peut-être vérifier le doc
répertoire pour les sources du paquet que vous avez réellement installé, afin de ne pas utiliser accidentellement une nouvelle fonctionnalité que vous n'avez pas encore installée.
Il n'y a pas vraiment beaucoup de pages de manuel, mais voici ce que j'ai trouvé inclus dans le lxd
et lxd-client
forfaits :
LXC(1)
– programme client pour communiquer avec le démon du serveur. Actuellement (14/05/2016) plutôt inutile et peu informatif. Espérons qu'à l'avenir, une série de pages de manuel pourra être créée pour cet outil, un peu comme lebtrfs
pages de manuel.LXD(1)
– ligne de commande du démon du serveur.
Bien sûr, il y a aussi la page du guide du serveur :https://help.ubuntu.com/lts/serverguide/lxd.html
Enfin, rappelez-vous que lxd est basé sur la bibliothèque lxc (mais pas sur les anciens outils de ligne de commande lxc). Cela signifie que la configuration de lxc peut toujours être effectuée directement, par ex. en utilisant raw.lxc
option de configuration dans lxd. Par conséquent, une référence à la configuration LXC sous-jacente est utile, mais rappelez-vous qu'elle doit être évitée si possible pour éviter un conflit avec LXD (par exemple, si vous définissez le même élément de configuration dans LXD et LXC). Vous pouvez parcourir les pages de manuel pour les trouver si nécessaire :https://linuxcontainers.org/lxc/manpages/