Introducción
En esta entrada te vamos a contar por qué deberías aprender a usar Docker cuanto antes, que es Docker y porque te puede servir comprender a utilizar esta tecnología. Aunque estés trabajando en redes esta entrada de seguro te puede interesar, ya que los temas de infraestructura IT y comunicaciones, siempre van de la mano.
¿Qué es Docker?
Docker se ha convertido en la herramienta favorita de desarrolladores web, administradores de sistemas, ingenieros de DevOps y arquitectos de TI. Ofrece una forma fácil de usar, fiable y segura de empaquetar aplicaciones llamadas contenedores, que se tratan como sus propias máquinas virtuales.
Los contenedores son máquinas virtuales ligeras e independientes del sistema operativo anfitrión. Los contenedores Docker se centran en ayudar a los desarrolladores de aplicaciones a crear, enviar y ejecutar aplicaciones de forma aislada, sin dejar de compartir recursos en toda la aplicación. Los contenedores se basan en los mismos conceptos que están en el núcleo del kernel de Linux, que han existido durante más de 20 años.
En resumen, Docker te permite tener máquinas virtuales (contenedores) sobre el mismo sistema operativo, no sobre el host, como una máquina virtual clásica. Eso es algo que abre mucho la posibilidad de IT.
Con Docker, puedes ejecutar aplicaciones en contenedores en cualquier servidor, en cualquier hardware y en cualquier lugar. La tecnología de contenedores es lo que hace posible Docker.
A día de hoy, hay más de 1.000 imágenes de contenedores en el Docker Hub, incluyendo herramientas como MySQL, el servidor web Apache, Node.js, MongoDB, Postgresql, Redis, Elasticsearch, MariaDB, y muchas otras. Hasta hace poco, no había forma de contribuir con tus propias imágenes de contenedores al ecosistema.
Docker vs una máquina virtual
Docker es una solución de contenedor de aplicaciones de código abierto para el desarrollo de software, también cuenta con su versión Enterprise. Ofrece un modelo para desplegar y ejecutar aplicaciones en contenedores para reducir la interferencia del sistema operativo y aumentar la portabilidad de las aplicaciones.
A diferencia de las máquinas virtuales, que proporcionan una abstracción completa del hardware y el software subyacentes, los contenedores pueden ejecutarse en cualquier plataforma. Incluso si una aplicación está escrita para un sistema operativo específico, el modelo de contenedor podría ejecutarse en cualquier otro sistema operativo.
Las VM se ejecutan en un entorno de hipervisor en el que, por ejemplo, una máquina virtual incluye su propio sistema operativo invitado dentro del mismo host u anfitrión, junto con todo lo necesario para funcionar. Esto consume una gran cantidad de recursos y genera una carga sobre el servidor Host, que es el servidor físico, si hablamos de soluciones Cloud, eso generaría más costos también, por ej: si tuviese que desplegar 10 WordPress, necesitaría 10 VM, en cambio con contenedores solo necesaria una, o quizás dos (dependiendo del hardware físico).
Cada contenedor comparte el mismo sistema operativo host o kernel del sistema y tiene un tamaño inferior, estamos diciendo que una imagen de Ubunutu en contenedores puede ocupar 100mb.
Esto hace posible desarrollar y ejecutar software para múltiples sistemas operativos y plataformas de despliegue en un único host.
Docker es una solución de contenedores, pero no es la única, también podemos encontrar rkt o Podman entre otros.
¿Por qué deberías aprender Docker hoy mismo?
Docker es una tecnología de contenedores que ayuda a los ingenieros de software a empaquetar y distribuir aplicaciones. Implementa una arquitectura de contenedorización para Linux o Windows, que es un entorno de ejecución ligero proporcionado por el kernel. Los contenedores están aislados entre sí y de la máquina anfitriona. Pueden trasladarse fácilmente de un host a otro, y pueden compartirse entre varios hosts.
Docker es la herramienta más popular para construir contenedores para sus aplicaciones, y está ganando rápidamente popularidad en la comunidad Mikrotik. Los contenedores Docker son portátiles, lo que le permite mover fácilmente las aplicaciones a través de plataformas y centros de datos.
Docker es una tecnología que está siendo adoptanda por empresas de diferentes tamaños para desplegar su infraestructura en la nube, e incluso se solicitan puestos de trabajo con conocimientos en Docker, esto abre tu abanico de conocimientos por el lado de IT.
Docker y Mikrotik
Quizás tu trabajo actual sea en el lado de las comunicaciones, pero entender Docker te puede traer muchos beneficios, además de conocer una nueva tecnología, la podrías aplicar a tus soluciones de comunicaciones si utilizas Mikrotik. ¿Pero qué tiene que ver Mikrotik con Docker? Esta es la pregunta que vamos a responderte ahora.
Mikrotik lanzo en su versión beta V7rc3 la posibilidad de instalar contenedores sobre RouterOS y esto es algo increíble, ya que nos abre la posibilidad de montar aplicaciones sobre RouterOS. Esto quiere decir que podrías aprovechar el hardware de un Mikrotik e instalar un servidor ngnix, apache o cualquier aplicacion, y acceder a él desde el Mikrotik.
[Actualización: Se vuelve a añadir el soporte a contenedores en la versión 7.4-beta4]
¿Qué podría hacer con Docker y Mikrotik?
Aquí te dejamos algunos ejemplos que se podrían aplicar utilizando la tecnología de contenedores y Mikrotik.
- Instalar un servidor Linux dentro tu RouterOS exponiendo sus servicios a internet.
- Construir un WordPress con una página Web.
- Desarrollo de aplicaciones sobre lenguaje Python por ejemplo.
- Crear una base de datos MongoDB para su uso específico.
- Instalar un servidor Ubuntu dentro de RouterOS.
La lista puede ser infinita, pero a partir de hoy, deberías pensar en esta nueva tecnología como parte de tus conocimientos en redes e Infraestructura.
En un futuro realizaremos una nueva entrada de como implementar contenedores en Mikrotik de una forma simple.
Más info: https://forum.mikrotik.com/viewtopic.php?f=1&t=178342&p=878204
¡Nos vemos pronto!