Esta guía discute todo sobre LXD. Veremos cómo instalar LXD y crear y administrar contenedores.
Que es lxd?
Cuando se habla de contenedores, la mayor parte de la atención ha estado en Docker y Kubernetes. Sin embargo, un modelo de contenedor más antiguo, el Proyecto de contenedores de Linux (LXC), sigue siendo útil, especialmente su conjunto de herramientas LXD.
La virtualización se puede lograr utilizando un hipervisor o un contenedor.
Los hipervisores como Oracle VM ofrecen una capa de abstracción, lo que permite que la máquina virtual invitada tenga acceso aislado al hardware y recursos del sistema host. Por lo tanto, los hipervisores requieren más espacio y drene los recursos del sistema de host para ejecutar una máquina virtual.
En contraste, los contenedores de Linux comparten el núcleo del sistema operativo host, lo que significa que los contenedores no desperdician los recursos y la memoria del host. Por lo tanto, puede tener muchos contenedores ejecutados en un servidor y la velocidad y el rendimiento de los contenidos son inigualables. Para crear y administrar estos contenedores, necesita un modelo de contenedor, como LXD.
LXD ofrece soporte de contenedores simulando una versión virtual del sistema operativo host. De esa manera, el contenedor puede ejecutarse sin afectar los recursos del anfitrión.
Trabajar con contenedores LXD
Esta guía explicará la creación de un contenedor de Linux en Ubuntu usando LXD. Tendremos dos secciones, instalación y creación del contenedor.
1. Instalación de LXD
Para instalar LXD, primero debemos actualizar el repositorio APT.
$ sudo apt actualización && sudo apt actualización
Una vez que se actualiza el repositorio APT, podemos instalar LXD como un paquete Snap. Puede instalar la última versión estable o especificar la versión LXD que desea instalar
$ sudo snap install lxd -channel = 4.0/establo
o
$ snap install lxd --channel = último/estable
Este ejemplo instala la última versión estable. El paquete Snap descargará el paquete.
Una vez que se complete la descarga, LXD se instalará y mostrará un mensaje que confirma que la instalación fue exitosa.
Con LXD instalado, puede administrar el servidor LXD agregando el usuario al grupo LXD. De esa manera, no necesitará ser root para administrar contenedores LXD. El siguiente comando agrega el usuario actual al grupo LXD.
$ sudo adduser $ user lxd
Supongamos que el usuario ya está agregado, recibirá un mensaje que confirma que el usuario ya es miembro del grupo LXD.
Si desea agregar otro usuario a este grupo, use la sintaxis a continuación.
$ sudo adduser nombre de usuario lxd
Tenga en cuenta que la membresía del grupo LXD se aplicará al siguiente inicio de sesión. Puede iniciar una nueva sesión SH para que se aplique. Alternativamente, puede ejecutar el nuevo Comando, que logra lo mismo que crear una nueva sesión SSH.
A continuación, debemos confirmar la membresía del grupo LXD utilizando el identificación comando para determinar el miembro que agregamos reflexionar en el grupo. El siguiente ejemplo confirma que el usuario actual para nuestro ejemplo se agregó correctamente al grupo LXD.
Con eso, podemos crear y administrar nuestros contenedores LXD.
2. Creación y gestión de contenedores
Lo primero es verificar si hay contenedores LXD existentes en su servidor. Para eso, use la opción de lista. Aunque estamos consultando los contenedores LXD, notará que estamos usando LXC Porque LXD es un conjunto de herramientas para el proyecto LXC diseñado para manejar la API LXC.
Lista de $ LXC
En este caso, tenemos una instalación LXD fresca y observará en la salida que no tenemos contenedores creados. Supongamos que tuvimos un contenedor, se enumeraría en la tabla a continuación junto con sus detalles.
El primer paso es inicializar el entorno LXC utilizando el en eso opción.
$ sudo lxd init
De esta manera, LXC configurará automáticamente el entorno al solicitarlo con diferentes preguntas para ayudar en el proceso de configuración. Si no está seguro de cómo responder, le recomiendo presionar la tecla ENTER para usar las opciones predeterminadas. Ellos funcionarán bien. Alternativamente, puede configurar la configuración y elegir las opciones para este tutorial, como en la imagen a continuación.
Una vez que el entorno LXC está configurado, está listo para crear su primer contenedor.
Además, puede verificar varias información sobre los contenedores LXD. Por ejemplo, puede verificar los perfiles disponibles enumerándolos.
Lista de perfil de $ LXC
El nombre del perfil es el especificado al inicializar el entorno LXC. Si va con el nombre predeterminado, su lista de perfil aparecerá como la siguiente.
Para verificar la información de almacenamiento, use el comando a continuación.
Lista de almacenamiento de $ LXC
Cuando tiene múltiples perfiles, puede especificar el nombre del perfil que desea recuperar su información de almacenamiento utilizando el espectáculo opción seguida del nombre del perfil. Para nuestro caso, nuestro perfil se nombra por defecto y podemos extraer sus detalles con el comando a continuación.
$ LXC Almacenamiento Muestra predeterminado
Obtendrá información de almacenamiento, como el tamaño, el nombre del grupo creado, etc.
La buena noticia es que LXD admite la creación de contenedores para diferentes distribuciones de Linux. Todo lo que se necesita es descargar la imagen para la distribución que desea y luego instalarla. Las imágenes disponibles que puede descargar están en el repositorio de LXC.
El repositorio contiene diferentes versiones de cada distribución, por lo que puede seleccionar qué versión y arquitectura funcionan mejor para su caso. Use el siguiente comando a continuación para enumerar todas las imágenes disponibles para todas las distribuciones.
$ LXC Imágenes de la lista de imágenes:
Supongamos que desea enumerar las imágenes para una distribución específica, use la grep Comandar para filtrar el nombre y la versión de la distribución, si es necesario. Aquí, estamos filtrando las imágenes para Ubuntu.
$ LXC Imágenes de la lista de imágenes: | Grep -i ubuntu
Notará en la salida a continuación que estamos obteniendo diferentes versiones y arquitecturas para las imágenes de Ubuntu. Puede crear un contenedor para cualquiera de las imágenes enumeradas.
Para este tutorial, creemos rápidamente un contenedor para Alpino/3.14. Alpine es pequeño y puede ejecutar el comando a continuación para crear un contenedor para ello. Dependiendo de su objetivo, puede usar cualquier distribución para su caso.
$ LXC Imágenes de lanzamiento: Alpine/3.14/AMD64 Linuxhint1
Al crear el contenedor, debe especificar el nombre del contenedor. Entonces, reemplace LinuxHint1 con el nombre para usar para su contenedor. Recibirá un mensaje que confirma que el contenedor ha sido creado y iniciado.
Verifiquemos que nuestro contenedor alpino se cree en enumerar los contenedores disponibles utilizando el comando de lista.
En esta salida, podemos ver el contenedor creado y su estado se está ejecutando actualmente, lo que significa que el contenedor está activo y podemos usarlo. Al contenedor creado también se le asigna un IPv4 e IPv6. Crear el contenedor depende de su velocidad de Internet y el tamaño de la distribución para la que está creando un contenedor para.
Para usar el contenedor creado, podemos acceder a él en una sesión de raíz no login utilizando el ejecución dominio. Para alpino, usaremos el mierda intérprete. Para Centos o Ubuntu, el /bin /bash funcionaría mejor.
Entonces, acceda al contenedor creado especificando su nombre como se muestra.
$ sudo LXC EXEC LINUXHINT1 SH
Ingrese la contraseña para el sistema de host para autorizar el acceso al contenedor. Tenga en cuenta que ahora estamos en el contenedor como usuario raíz y podemos ejecutar cualquier comando como root.
Cuando desee cerrar la sesión, escriba salida y presione Entrar. Tenga en cuenta que salir de una sesión de contenedor no detiene la sesión. Todavía funciona en segundo plano.
Puede agregar una interfaz de red virtual a contenedores especificando su nombre. Primero enumeremos la interfaz de red disponible para nuestro sistema con el comando a continuación.
$ LXC Network LS
Supongamos que queríamos agregar una nueva interfaz virtual para el ENP0S3 para nuestro contenedor, podríamos lograrlo al conectar la interfaz de la siguiente manera.
$ LXC Network adjunte ENP0S3 LINUXHINT1
Una vez que haya agregado la interfaz de red, abra una nueva sesión SH y verifique si su nueva interfaz virtual reflejará.
Con LXD, también puede verificar el estado y las instancias de su contenedor para ver si se está ejecutando o detenido. Para eso, usa el Lista - dominio.
Lista de $ LXC -Fast
En la salida a continuación, podemos ver que nuestro contenedor Linuxhint1 se está ejecutando en la columna de estado. Supongamos que tuvimos múltiples contenedores. Todas las instancias tendrían sus estados y otros detalles en la tabla a continuación.
Puede comenzar, detener o reiniciar su contenedor en cualquier momento. Para detener el contenedor, use el detener Palabra clave seguida del contenedor que desea detener.
$ LXC Stop Linuxhint1
Supongamos que verificamos el estado actual de nuestro contenedor. Notaremos que se detiene. En ese caso, podemos comenzar con el comando a continuación.
$ LXC Start Linuxhint1
Si tenemos problemas con el contenedor, podemos reiniciarlo rápidamente con el comando reiniciar.
$ LXC reiniciar linuxhint1
Al trabajar con contenedores, puede mostrar la información de los servidores LXD utilizando el información dominio. Si no especifica el nombre del contenedor, la salida mostrará la información de todos los contenedores disponibles. Sin embargo, podemos especificar el contenedor que queremos extraer su información.
$ LXC INFORMACIÓN LINUXHINT1
La información recuperada contiene todos los detalles del contenedor, como el nombre del contenedor, su estado, el tipo, PID y los recursos que el contenedor está utilizando. Esta información es crucial para administrar su contenedor.
Aún así, LXD admite compartir archivos desde y hacia un contenedor. Podría ser que desea presionar un archivo determinado que creó para que sea accesible desde el contenedor o extraer un archivo del contenedor al sistema de host. En ese caso, usa el empujar o jalar Palabras clave seguidas de la ruta al archivo.
En el primer ejemplo, estamos saliendo del contenedor y creando un archivo llamado nombres.TXT en el sistema de host. A continuación, empujamos el archivo creado al contenedor. Aún así, estamos iniciando sesión en el contenedor y confirmando que nuestro archivo fue presionado correctamente.
Aquí está la sintaxis para empujar un archivo de un host a un contenedor.
$ LXC File Push /Path/ Container/DestinationPath/On-Container
Del mismo modo, el siguiente ejemplo crea un script en el contenedor. Luego extraemos el script creado del contenedor al sistema de host en el directorio actual. El último comando enumera el contenido del directorio actual en el host para confirmar que extraemos el archivo con éxito.
$ LXC File Pull Container/rath/to-file rath/to-destination-on-host
Lo último es saber cómo eliminar el contenedor creado cuando ya no es necesario. Primero, debe detener el contenedor de ejecución.
Una vez detenido, elimínelo usando el comando a continuación.
$ LXC DELETE CONTAYINER-NAME
Se trata de crear y administrar contenedores usando LXD. Si se atasca trabajando con LXD, abra la página de ayuda para ver qué comando puede usar para un propósito dado. Además, puede ver la página de ayuda para un comando específico.
Conclusión
LXD es un modelo de contenedor que ofrece una API REST para admitir la administración de contenedores LXC. Puede instalar LXD como un paquete Snap e inicializar un entorno LXC ideal para crear sus contenedores LXD. Esta publicación ha ofrecido un tutorial práctico sobre todo sobre LXD. Hemos discutido lo que significa LXD, su instalación, creación y administración de contenedores, y cómo eliminar el contenedor creado.