Comenzando con contenedores LXD en Ubuntu 16.04

Comenzando con contenedores LXD en Ubuntu 16.04

Por qué LXD?

No es ningún secreto que los contenedores están calientes en este momento en el mundo de Linux. Se están convirtiendo rápidamente en la columna vertebral de la nube y están haciendo realidad los sueños de DevOps se hacen realidad. Aun así, a primera vista, parece un poco redundante que Canonical desarrolle un nuevo sistema de contenedores para Ubuntu en un mundo fácilmente dominado por Docker. Entonces, ¿por qué, entonces, lo hicieron?? Para llenar un punto medio entre las máquinas virtuales tradicionales y el Docker. Canonical lo dijo ellos mismos: “Al combinar la velocidad y la densidad de los contenedores con la seguridad de las máquinas virtuales tradicionales, la LXD de Canonical es la próxima generación del hipervisor de contenedores para Linux."No solo eso, sino que los contenedores Docker se pueden ejecutar dentro de los contenedores LXD, agregando otra dimensión a las configuraciones potenciales de contenedores.

LXD es una mejora del hipervisor de contenedores LXC LXC LXC con su propio conjunto de herramientas, compartiendo una relación similar con el proyecto original como Ubuntu lo hace con Debian con el objetivo de tomar un gran software existente y racionalizarlo. En el último lanzamiento de Ubuntu Lts de Canonical, 16.04, LXD está bien integrado y fácil de usar con herramientas de CLI claras y concisas que hacen que la creación y administración de contenedores sea perfecta.

Configuración inicial

Comenzando con LXD en Ubuntu 16.04 es lo más cerca que podría ser esperado. Canonical condensó la instalación a un solo paquete, lo que hace que este sea una instalación de comando. Un simple sudo apt-get install lxd Obtendrá todo lo necesario para comenzar.


Para agregar el usuario al grupo 'LXD' para poder ejecutar los comandos necesarios sin reiniciar, ejecutar Newgrp LXD. Después de eso, todo será claro para continuar con la configuración del Hypervisor LXD. Correr sudo lxd init comienza el proceso de configuración.


El proceso de configuración inicial consiste en una serie de indicaciones de línea de comandos que solicitan información básica necesaria para configurar el Hypervisor LXD. Todo el proceso es muy sencillo y solicita información como el tipo de almacenamiento, la dirección IP, el número de puerto, la contraseña y si la conexión está puenteada o no.

Después de esa serie de indicaciones, la configuración cambia a una interfaz basada en texto con una serie de preguntas sobre la configuración de red del Hypervisor LXD. El proceso crea redes IPv4 e IPv6 puentes completas con subredes personalizadas y DHCP. De esta manera, LXD actúa como un enrutador virtual para todos los contenedores implementados en él y proporciona un solo punto de configuración para estas redes virtuales.

Claramente, este es uno de esos momentos en los que LXD brilla como una solución de "lo mejor de ambos mundos". Por supuesto, también es bueno que Canonical proporcione un menú de configuración de estilo Debian para caminar por el proceso y hacer que sea casi sin pensarlo fácil. Una vez que termina la configuración, vuelve a la línea de comando y proporciona un mensaje corto que dice que ha sido exitoso.


Imágenes y contenedores LXD

Configurar un contenedor

Al igual que Docker, LXD está basado en imágenes. Proporciona tres opciones principales para obtener imágenes; importaciones remotas, incorporadas y locales. Hay varias fuentes remotas que vienen con LXD fuera de la caja, así como las fuentes locales. Para ver qué fuentes están disponibles, simplemente ejecute Lista remota de LXC, y se le presentará una conveniente tabla de línea de comandos que muestra información sobre las fuentes disponibles actualmente.


A los fines de este artículo, las fuentes locales parecían ser la mejor y más fácil opción. Hay imágenes limpias de Ubuntu proporcionados que son un excelente punto de partida para cualquier implementación. Este es otro de esos momentos "mejores de ambos mundos". En lugar de tener un contenedor despojado a medida para ejecutar una sola aplicación, los contenedores LXD están más cerca de una máquina virtual completa.

Vienen completos con acceso de línea de comando e incluso con la capacidad de instalar paquetes. Al mismo tiempo, LXD proporciona excelentes herramientas de línea de comandos para administrar contenedores e incluso empujar y extraer archivos hacia y desde ellos. Para girar un Ubuntu 16.04 contenedor, solo ejecuta LXC Lanzamiento Ubuntu: 16.04 Nombre de contienen. LXD obtendrá la imagen, creará un contenedor e iniciará el contenedor.


Trabajar con contenedores LXD

Es fácil verificar el estado del contenedor con Lista LXC. Comenzar y detener los contenedores es igual de fácil con LXC STOP Nombre de contenido y LXC Start Name of Container.

Uno de los claros beneficios de LXD sobre contenedores tradicionales como Docker es la capacidad de editar contenedores en ejecución y actualizarlos en lugar de empacar un contenedor, implementarlo y dejarlo solo. Si se trata de pasar archivos entre el sistema de host y los contenedores, LXD tiene comandos de empuje y extracción que permiten que los archivos se pasen de un lado a otro. Si se necesita algo más involucrado, LXD proporciona una excelente herramienta de línea de comandos para acceder a los contenedores en ejecución y obtener un shell completo. Para obtener acceso a la carcasa de un contenedor, LXC EXEC Nombre de Container- /bin /bash.


En el shell del contenedor hay un sistema de archivos Linux completo, y la línea de comando tiene acceso a las herramientas que se inclinan con la imagen o se instalaron más tarde en los contenedores. Esto permite a los contenedores LXD ejecutar actualizaciones y múltiples aplicaciones, incluido Docker. De esta manera, un ingeniero de DevOps podría implementar un contenedor LXD que ejecuta una base de datos y un servidor web, así como a Docker con varias aplicaciones web que se ejecutan en Docker Containers.
Por supuesto, esa es solo una de las muchas posibilidades, pero el aspecto clave aquí es que LXD agrega otra capa a la ecuación y proporciona más flexibilidad al configurar una pila de software.

Conclusión

Está claro incluso de esta prueba más básica con LXD que Canonical cumplió con su objetivo en la creación de un medio claro entre la virtualización de Linux y los contenedores Docker. LXD es una herramienta que los ingenieros de DevOps deberían considerar seriamente agregar a su caja de herramientas.

Tutoriales de Linux relacionados:

  • Ubuntu 20.04 Descargar
  • Cosas para instalar en Ubuntu 20.04
  • Cómo hacer una copia de seguridad de las teclas GPG en papel
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cómo configurar un servidor OpenVPN en Ubuntu 20.04
  • Ubuntu 20.10 Descargar
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Ubuntu 21.04 Descargar
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cosas para instalar en Ubuntu 22.04