Introducción detallada a los contenedores LXD en Ubuntu

Los contenedores son útiles por muchas razones. Aísla las aplicaciones del resto del sistema. Son portátiles y fáciles de clonar y/o portar a otros sistemas operativos. En el caso de Linux , funcionan de la misma manera en cualquier distribución, sin modificaciones necesarias. Si necesita transportar un contenedor desde RedHat para Ubuntu Debería ser solo un simple proceso de copia.

Docker Es una solución común diseñada para contener una sola aplicación: por ejemplo, un servidor base de datos mysql. Parecido LXD De alguna manera, pero está diseñado para contener un sistema operativo completo. Esto lo hace útil para algunos escenarios. Por ejemplo, puedes Crear contenedor LXD e instale un servidor de base de datos y un servidor http. entonces puedes Crear un sitio de WordPress interno. Ahora puede cambiar de nube a nube simplemente moviendo este contenedor LXD cuando sea necesario cuando no esté satisfecho con su proveedor anterior. Dado que es fácil clonar un contenedor, incluso puede descargar Su página web a múltiples proveedores de servicios en la nube para crear una configuración redundante y de alta disponibilidad.

Introducción detallada a los contenedores LXD en Ubuntu - Linux

LXD no funciona en máquinas virtuales como QEMU O VirtualBox , lo que significa que es muy rápido y proporciona una velocidad de ejecución casi local.

Instalar y configurar LXD

Abra Terminal e instale LXD, así como las utilidades ZFS, que lo ayudarán a acelerar algunos procesos y ahorrar espacio en disco cuando trabaje con contenedores.

sudo apt install zfsutils-linux lxd

Introducción detallada a los contenedores LXD en Ubuntu - Linux

Inicie la configuración de LXD.

sudo lxd init

Pulse ENTER para seleccionar los valores predeterminados.

Para el tamaño en GB del nuevo dispositivo de bucle (mínimo 1 GB) [predeterminado = 15 GB], puede elegir otro valor, como "50 GB" si sabe que creará muchos contenedores.

Introducción detallada a los contenedores LXD en Ubuntu - Linux

Encontrar y ejecutar una imagen LXD

Para enumerar todas las imágenes de Ubuntu:

lxc image list ubuntu: arch=amd64
Introducción detallada a los contenedores LXD en Ubuntu - Linux

Habrá muchos resultados. Tu puedes elegir omitir arco = amd64 Si necesita imágenes para otras plataformas, como procesadores ARM (los dispositivos Raspberry Pi usan esta arquitectura).

En la imagen anterior, se limitaron los resultados (con |head) para facilitar la lectura. Se muestra la huella digital Ubuntu 18.04 (84a71299044b). Si desea ejecutar un contenedor con esta distribución, el comando sería:

lxc launch ubuntu: 84a71299044b

Por el momento esto regresará con un error de permiso denegado. Debes estar en el grupo "lxd". Su usuario ya ha sido agregado a este grupo, pero para activarlo, debe cerrar sesión y volver a iniciar sesión. Si desea evitar esto, use este comando, reemplazando "usuario" con su nombre de usuario:

exec su - user
Introducción detallada a los contenedores LXD en Ubuntu - Linux

Ahora, los comandos lxc funcionan sin necesidad de sudo.

Ejecución de contenedores LXD con distribuciones que no son de Ubuntu

Este comando le mostrará las otras distribuciones disponibles:

lxc image list images: arch=amd64

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

lxc launch images:debian/9
Introducción detallada a los contenedores LXD en Ubuntu - Linux

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

lxc launch images:debian/9 wordpress-site

Gestión de contenedores LXD

Para enumerar todos los contenedores:

lxc list
Introducción detallada a los contenedores LXD en Ubuntu - Linux

es una columna"IPV4Especialmente importante si tiene algún servicio ejecutándose en este caso. Por ejemplo, si un servidor apachehttp ejecutándose en la instancia, la entrada "10.234.232.246En el navegador mostrará el sitio web alojado en el contenedor.

Para detener el contenedor:

lxc stop name_of_container

Esto puede llevar mucho tiempo (o fallar) con las distribuciones que no son de Ubuntu. Será mejor que consigas un envoltorio para el contenedor, y cuando entres, entra apagado del sistema para apagarlo.

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

lxc stop name_of_container --force

Para iniciarlo:

lxc start name_of_container

Para navegar dentro de su contenedor:

lxc shell name_of_container
Introducción detallada a los contenedores LXD en Ubuntu - Linux

Puede instalar software con “sudo apt instalarY haga 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:

exit

Transferir archivos a/desde contenedores LXD

Para subir un archivo a su contenedor:

lxc file push /path/to/local/file name_of_container/path/to/uploaded/file

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

lxc file push lxd-apt-install.png accurate-colt/var/www/website/upload.png

Para cargar un directorio en lugar de un archivo:

lxc file push /path/to/local/directory name_of_container/path/to/remote/directory --recursive --verbose

Por ejemplo:

lxc file push /bin accurate-colt/tmp --recursive --verbose

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

lxc file pull name_of_container/path/to/remote/directory /path/to/local/directory --recursive --verbose

Por ejemplo:

lxc file pull accurate-colt/tmp /tmp --recursive --verbose

Conclusión

esto cubre Uso principal de contenedores LXD. Hay funciones más avanzadas, como instantáneas y devolución, restricciones de recursos como UPC وRAM , clonación de contenedores, etc. Puede tratarse en un tutorial futuro si notamos que los lectores están interesados ​​en el tema.

Ir al botón superior