Introducción a los contenedores LXD de Ubuntu

Los contenedores son útiles por muchas razones. Aíslan las aplicaciones del resto del sistema. Son portátiles y fáciles de clonar y / o mover a otros sistemas operativos. Y, en el caso de Linux, funcionan de la misma manera bajo cualquier distribución, sin necesidad de adaptaciones. Si necesita mover un contenedor de RedHat a Ubuntu, debería ser solo una operación de copia simple.

Docker es una solución popular diseñada para contener una sola aplicación: por ejemplo, un servidor de base de datos MySQL. LXD es similar en algunos aspectos, pero está diseñado para contener un sistema operativo completo. Esto lo hace útil para algunos escenarios. Por ejemplo, puede activar un contenedor LXD, instalar un servidor de base de datos y un servidor http. Luego puede crear un sitio web de WordPress dentro. Ahora puede cambiar de una nube a otra con solo mover este contenedor LXD donde sea necesario cuando no esté satisfecho con su proveedor anterior. Y dado que es fácil clonar un contenedor, incluso puede cargar su sitio web en varios proveedores de nube para crear una configuración redundante y de alta disponibilidad.

LXD no virtualiza el hardware como lo hacen QEMU o VirtualBox, lo que significa que es muy rápido y ofrece una velocidad de ejecución casi nativa.

Instalar y configurar LXD

Abra una terminal e instale LXD, más las utilidades de ZFS, que lo ayudarán a acelerar algunas operaciones y ahorrar espacio en disco cuando trabaje con contenedores.

lxd-apt-install

Inicie la configuración de LXD.

Presione ENTER para seleccionar los valores predeterminados.

por Size in GB of the new loop device (1GB minimum) [default=15GB], puede elegir otro valor, como “50 GB” si sabe que creará muchos contenedores.

lxd-init-preguntas

Busque y ejecute una imagen de distribución LXD

Para enumerar todas las imágenes de Ubuntu:

lxd-ubuntu-images

Habrá muchos resultados. Puedes omitir arch=amd64 si necesita imágenes para otras plataformas, como procesadores ARM (los dispositivos Raspberry Pi utilizan dicha arquitectura).

En la imagen anterior los resultados han sido limitados (con |head) para facilitar la lectura. Se resaltó la huella digital de Ubuntu 18.04 (84a71299044b). Si desea lanzar un contenedor con esa distribución, el comando sería:

Por el momento, esto devolvería un error de permiso denegado. Debe estar en el grupo “lxd”. Su usuario ya ha sido agregado a este grupo, pero para activarlo debe cerrar la sesión y volver a iniciarla. Si quiere evitar eso, use este comando, reemplazando “usuario” con su nombre de usuario:

lxd-usuarios-grupos-activos

Ahora, los comandos lxc funcionan sin requerir sudo.

Lanzar contenedores LXD con distribuciones que no sean de Ubuntu

Este comando le mostrará qué otras distribuciones están disponibles:

Para lanzar una imagen, en lugar de la huella digital, también puede usar un nombre de alias si ve uno disponible en esa lista.

lxd-launch-debian-9

Si agrega una cadena al final, puede elegir un nombre para su contenedor:

Gestionar contenedores LXD

Para enumerar todos los contenedores:

lxd-lxc-list

La columna “IPV4” es especialmente importante si tiene algún servicio en ejecución en esa instancia. Por ejemplo, si un servidor http Apache se ejecuta en la instancia, ingresar “10.234.232.246” en el navegador mostraría el sitio web alojado en el contenedor.

Para detener un contenedor:

Esto puede llevar mucho tiempo (o fallar) con distribuciones que no son de Ubuntu. Es mejor llevar un caparazón al contenedor y una vez dentro, ingresar systemctl poweroff para detenerlo.

Si todo lo demás falla, puede forzar una parada con:

Para empezar:

Para moverse dentro de su contenedor:

lxd-shell-debian

Puede instalar programas con “sudo apt install” y hacer cualquier otra cosa que haría en una distribución normal de Linux, por ejemplo, configurar un servidor Apache. Cuando desee salir del contenedor, simplemente escriba:

Transferir archivos a / desde contenedores LXD

Para subir un archivo a su contenedor:

Incluya el nombre del archivo que se creará, no solo el directorio donde desea cargarlo. Aquí hay un ejemplo:

Para cargar un directorio en lugar de un archivo:

Ejemplo:

Para descargar un directorio de su contenedor a su sistema operativo principal:

Ejemplo:

Conclusión

Esto cubre el uso básico de contenedores LXD. Hay funciones más avanzadas como instantáneas y reversiones, imposición de límites a recursos como CPU y RAM, clonación de contenedores, etc. Estos pueden cubrirse en un tutorial futuro si notamos que los lectores están interesados ​​en el tema.

¿Es útil este artículo?

¡Compártelo en redes sociales!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *