LinuxParty
La nube es cada vez más grande, más potente, cuenta con más usuarios que hacen uso de ella al mismo tiempo y, además, permite la ejecución de aplicaciones cada vez más potentes, por lo que, para garantizar el correcto funcionamiento de esta, tanto en el presente como en el futuro, es necesario utilizar una plataforma que optimice los recursos lo mejor posible y, al mismo tiempo, sea lo más escalable posible con el fin de poder ampliar sus características de forma sencilla cuando sea necesario.
La nube es sinónimo de virtualización. Ejecutar un sistema operativo virtual por cada instancia de una aplicación es un proceso muy pesado y poco optimizado, a la vez que lento. Por ello, la comunidad Linux ha trabajado en el concepto de contenedores, una nueva forma de optimizar recursos creando pequeños espacios virtuales de las aplicaciones necesarias cargando solo el núcleo de la aplicación y las dependencias, pero funcionando siempre sobre un único kernel, o sistema operativo.
Docker es uno de los proyectos más conocidos y utilizados en temas de virtualización. Lejos de ser un sistema operativo como tal, esta plataforma de código abierto hace uso de las funciones de aislamiento de recursos del kernel de Linux para poder dar lugar a contenedores independientes, dentro de los cuales se ejecutará una única aplicación con sus respectivas dependencias, pero funcionando siempre con un único kernel, el de la máquina real, en lugar de virtualizar uno por cada contenedor o máquina virtual.
En resumen, mientras cada aplicación en máquinas virtuales necesita contar con un sistema operativo completo virtualizado (ocupando, por ejemplo, 1 GB de memoria RAM), Docker aprovecha el kernel de la máquina real y, con su motor, tan solo carga en la memoria las librerías y dependencias necesarias para ejecutar la aplicación, despreciando todo lo demás y ocupando alrededor del un 80% menos, por ejemplo, 200 MB de RAM.
Virtualizar con Docker nos ofrece una serie de ventajas respecto a hacerlo con máquinas virtuales convencionales:
- Portabilidad. Todos los contenedores son portables, por lo que podemos llevarlos fácilmente a cualquier otro equipo con Docker sin tener que volver a configurar nada.
- Ligereza. Al no virtualizar un sistema completo, sino solo lo necesario, el consumo de recursos es mínimo. El ahorro de recursos es de alrededor de un 80%.
- Autosuficiencia. Docker se encarga de todo, por lo que los contenedores tan solo deben tener lo necesario para que la aplicación funcione, por ejemplo, aquellas librerías, archivos y configuraciones necesarias para poder realizar su función.
Un sistema de contenedores Docker se compone principalmente de 5 elementos:
- Demonio: Es el proceso principal de la plataforma.
- Cliente: Es el binario que constituye la interfaz y que permite al usuario interactuar con el Demonio.
- Imagen: Plantilla utilizada para crear el contenedor para la aplicación que queremos ejecutar.
- Registros: Directorios donde se almacenan las imágenes, tanto de acceso público como privado.
- Contenedores: Carpetas donde se almacena todo lo necesario (librerías, dependencias, binarios, etc) para que la aplicación pueda ejecutarse de forma aislada.
Docker también cuenta con una serie de repositorios, similares a los de Linux, donde los usuarios publican sus propios contenedores de manera que los usuarios que los necesiten los puedan bajar rápidamente desde allí.
Spotify, eBay y Rackspace, entre otras muchas empresas, utilizan este sistema de contenedores en sus centros de datos. Además, esta plataforma cuenta con el apoyo de otras grandes compañías de Internet como Amazon y Google, lo que le permite seguir creciendo y mejorando constantemente.
Más adelante veremos cómo instalar y cómo funcionan estos contenedores de virtualización, sin embargo, si queréis descargar tanto la plataforma como el código fuente de la misma podéis hacerlo de forma totalmente gratuita desde su página web principal.
¿Alguna vez has virtualizado aplicaciones con Docker?
-
Virtualización
- VirtualBox 7.1.4 agrega soporte inicial para Linux Kernel 6.12 y otros cambios de Linux
- VirtualBox 7.1 promete soporte Wayland para compartir portapapeles en Linux
- VirtualBox 7.0.20 presenta soporte inicial para los kernels openSUSE 15.6 y RHEL 9.5
- VirtualBox 7.0.16 lanzado con soporte inicial para los kernels Linux 6.8 y 6.9
- Instalar un Sistema Operativo Invitado en VirtualBox
- Publicación de QEMU 8.0 para Linux, Windows y Mac con más emulación ARM y RISC-V
- Realidad Virtual, una revolución para el modelo digital de ocio
- Cómo instalar QEMU/KVM en Ubuntu para crear máquinas virtuales
- Cómo instalar VirtualBox 7.0 en AlmaLinux
- Cómo ejecutar aplicaciones de Android en Linux mediante Anbox
- Multipass: ejecutar varias VMs Ubuntu Linux bajo Demanda para cualquier sistema Linux
- Cómo usar máquinas virtuales Virtualbox en KVM en Linux
- Cómo clonar y crear una plantilla de máquina virtual KVM
- Gestión de máquinas virtuales KVM con Cockpit Web Console en Linux
- Cómo crear máquinas virtuales en Linux usando KVM (máquina virtual basada en kernel)