¿Quieres mejorar esta pregunta? Actualice la pregunta para que se centre en un solo problema editando esta publicación.
Cerrado hace 5 años.
Mejorar esta pregunta
Mientras investiga y aprende más sobre Containers, Docker parece tener una excelente documentación y ejemplos de casos de uso con guías paso a paso. Mientras que, por otro lado, LXD solo tiene una guía de inicio simple. ¿Qué fuentes por ahí tendrían buena documentación sobre LXD que podría revisar?
Respuesta aceptada:
LXC frente a LXD
Las publicaciones de blog son agradables e informativas y buenas para leer para comenzar, pero no hacen una buena documentación una vez que ha comenzado. Si es como yo, puede tener bastante clara la diferencia entre Docker y LXC/LXD después de leer solo algunas publicaciones de blog comunes sobre esto. Pero la diferencia entre el proyecto LXC anterior y el nuevo proyecto LXD no estaba en todo claro para mí, y la mayoría de las páginas que encontré simplemente no hacen un buen trabajo explicándolo de una manera que pueda entender. En su mayoría, intentan aclarar la confusión entre un contenedor de aplicaciones (Docker) y un contenedor de sistema operativo (LXC/LXD). Luego encontré esta publicación de blog:¿Dónde encaja lxd?
Como ya sabrá, todas estas herramientas (Docker/LXC/LXD) usan características comunes del kernel como espacios de nombres y cgroups, es solo una cuestión de cómo el espacio de usuario decide usarlas. Un resumen de la publicación anterior se centró en la evolución de LXC vs LXD, según mi entendimiento:
- LXC se creó originalmente para probar las nuevas características del kernel; como tal, era una mezcolanza de scripts de shell y programas C (todavía se usa hoy en día a través de las herramientas de línea de comando LXC "antiguas").
- Luego, esto se refactorizó en una biblioteca. Las herramientas de línea de comandos del espacio de usuario de LXC existentes utilizan esta biblioteca ahora.
- LXD es una forma básica de interactuar con esta biblioteca que no se ve obstaculizada por la compatibilidad con versiones anteriores de las antiguas herramientas de línea de comandos de LXC. Por lo tanto, es más fácil de usar y más capaz.
Si alguien (como un mantenedor) ve algunos errores anteriores, no dude en corregir mi respuesta. 🙂
Algunas notas sobre libvirt-lxc
Además, en caso de que esté considerando libvirt-lxc
(por ejemplo, si ya está utilizando libvirt
con KVM):
- Red Hat dejó de usar esto:https://access.redhat.com/articles/1365153
- Upstream dice que seguirán trabajando en ello:https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
- Aunque
libvirt-lxc
tienelxc
en el nombre, en realidad no usalxc
y en su lugar utiliza directamente las características del núcleo. Así que no confundas estolibvirt
controlador conlxc
a pesar de la confusión de nombres. Referencia:http://libvirt.org/drvlxc.html (Tenga en cuenta que creo que proxmox lo hace usalxc
correcto, pero no el nuevolxd
herramientas). - Stéphane Graber sugiere que usar
libvirt
con contenedores no encaja bien, y aunque es posible que alguien pueda escribir unlibvirt-lxd
, él piensa que también es un mal ajuste. En resumen:libvirt
está diseñado para administrar máquinas virtuales y los contenedores no son máquinas virtuales, por lo que las cosas se complican y solo admite un denominador común de funciones. Referencia:https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html - Para reforzar lo anterior, no es tan fácil crear nuevos contenedores con
libvirt-lxc
. Por ejemplo, debe darle una ruta a un rootfs EXISTENTE para un nuevo contenedor que desea crear, y no hay soporte enlibvirt-lxc
para darle vueltas a eso. Eso te deja haciendo cosas como usar herramientas externas comolxc-create
para crear un nuevo contenedor a partir de una plantilla y luego hacer un nuevolibvirt-lxc
contenedor usando ese directorio existente que acaba de crear, lo que me deja preguntando:"¿por qué molestarse conlibvirt-lxc
en lugar de simplemente usarlxd
directamente?”
Documentación LXD
Volviendo a su pregunta, he intentado reunir toda la documentación de referencia sobre LXD que pude encontrar. Hay una buena documentación aquí:
https://github.com/lxc/lxd/tree/master/doc
En particular:
configuration.md
tiene una buena lista de referencia de posibles opciones de configuración.imagehandling.md
habla sobre cómo las imágenes del sistema operativo se almacenan en caché localmente.lxd-ssl-authentication.md
analiza la API REST y cómo se expone en un socket UNIX local y, opcionalmente, en HTTPS, y cómo se protege.storage-backends.md
analiza las limitaciones y la configuración de cada backend de almacenamiento.userns-idmap.md
lxd usa contenedores sin privilegios de forma predeterminada, lo que significa que el UID/GID del contenedor debe asignarse a un UID/GID de host; esto discute eso.- Gran parte de la documentación restante no es tan importante de leer o está más orientada a los desarrolladores.
Los enlaces anteriores son de la rama maestra de lxd
aguas arriba, por lo que es posible que desee consultar el doc
directorio para las fuentes del paquete que realmente instaló, para que no use accidentalmente alguna función nueva que aún no haya instalado.
Realmente no hay muchas páginas man, pero esto es lo que encontré incluido en el lxd
y lxd-client
paquetes:
LXC(1)
– programa cliente para comunicarse con el demonio del servidor. Actualmente (14/05/2016) bastante inútil y poco informativo. Con suerte, en el futuro se pueden crear una serie de páginas de manual para esta herramienta, muy parecidas abtrfs
páginas de manual.LXD(1)
– línea de comando del demonio del servidor.
Por supuesto, también está la página de la guía del servidor:https://help.ubuntu.com/lts/serverguide/lxd.html
Finalmente, recuerde que lxd se basa en la biblioteca lxc (pero no en las antiguas herramientas de línea de comandos de lxc). Esto significa que la configuración de lxc aún se puede realizar directamente, p. usando raw.lxc
opción de configuración en lxd. Por lo tanto, es útil alguna referencia a la configuración subyacente de LXC, pero recuerde que debe evitarse si es posible para evitar un conflicto con LXD (por ejemplo, si establece el mismo elemento de configuración en LXD y LXC). Puede buscar en las páginas de manual para encontrarlas si las necesita:https://linuxcontainers.org/lxc/manpages/