La complejidad de las aplicaciones va en aumento y la demanda de entregables por parte de los equipos de desarrollo es cada vez mayor. Ante esto, los equipos de Infraestructura y Operaciones se ven implicados en un gran esfuerzo por satisfacer estas necesidades. Aquí es donde adquieren valor los contenedores, ya que nos permiten reducir problemas y lograr despliegues más rápidos en diferentes entornos.
En esta serie de artículos te estaré compartiendo recomendaciones, basadas en mi experiencia, para que conozcas las características y beneficios de usar contenedores, y descubras por qué Docker es la herramienta ideal para obtener despliegues más rápidos.
Sin embargo, antes de comenzar debemos comprender algunos términos y conocer cuáles serán los primeros pasos a seguir para explotar al máximo esta tecnología. ¡Acompáñame!
A todo esto, ¿qué son los contenedores?
Podemos decir que los contenedores son la unidad de software que empaqueta solo las librerías y herramientas necesarias para que una aplicación se ejecute de manera correcta.
Debido a esta característica principal, eliminamos la frase popular de “En mi local funciona” ya que, al tener “encapsulado” nuestro código y sus dependencias, nos olvidamos de las fallas y errores que puedan surgir en los diferentes ambientes que existan en proceso de entrega. Es decir, con esto no tenemos que preocuparnos si se tiene una versión diferente de una librería en desarrollo y otra en producción.
Por ejemplo, Google construye su propia definición comparándolos con una Maquina Virtual con un sistema operativo invitado, como Linux o Windows, que se ejecuta en un sistema operativo host con acceso "virtualizado" al hardware subyacente.
Como las máquinas virtuales, los contenedores te permiten empaquetar tu aplicación junto con bibliotecas y otras dependencias, y ofrecen entornos aislados para ejecutar los servicios de tu software. Sin embargo, no hay más similitudes ya que los contenedores ofrecen una unidad mucho más liviana para que trabajen los desarrolladores y equipos de operaciones de TI, además de una gran cantidad de beneficios.
¿Por qué usar contenedores?
A continuación, te contaré 3 razones por las cuales deberías empezar a considerar utilizar contenedores Docker.
Solución:
En lugar de tener una máquina virtual sobre un SO huésped, los contenedores realizan la “virtualización” a nivel del Sistema Operativo ejecutándose directamente en el Kernel del SO, esto significa que los contenedores son más livianos, se inician con bastante más rapidez y usan menos memoria del equipo Host.
Portabilidad:
Los contenedores se pueden ejecutar virtualmente en cualquier lugar, ya sea Linux, Windows o Mac.
Aislamiento:
Los contenedores "virtualizan" la CPU, la memoria, el almacenamiento y los recursos de red a nivel del SO, lo que brinda una vista en zonas de prueba aisladas lógicamente de otras aplicaciones.
Existen muchos formatos de contenedores disponibles.
Docker es un formato popular de contenedor de código abierto.
Una breve historia de los contenedores
La idea de lo que ahora llamamos "tecnología de contenedores" surgió por primera vez en el año 2000 como FreeBSD jail, una tecnología que permite la partición de un sistema FreeBSD en varios subsistemas o "jaulas" (jails). Las jaulas se desarrollaron como entornos seguros que un administrador de sistemas podía compartir con distintos usuarios dentro o fuera de una empresa.
En 2001, se introdujo en Linux la implementación de un entorno aislado, a través del proyecto VServer de Jacques Gélinas. Una vez que se estableció para múltiples espacios de usuario controlados en Linux, comenzó a tomar forma lo que hoy es un contenedor de Linux.
Siempre debemos considerar que existen tres estándares importantes que garantizan la interoperabilidad de las tecnologías de contenedores:
- Las especificaciones de la OCI en cuanto a la imagen
- La distribución
- Runtime
La combinación de tales especificaciones permite que los proyectos de la comunidad, los productos comerciales y los proveedores de nube creen tecnologías de contenedores con capacidad de interactuar entre sí.
Un hecho relevante: La aparición de Docker
En 2008, Docker apareció en escena (a través de dotCloud) con su tecnología de contenedores. Docker incorporó una serie de conceptos y herramientas nuevos:
- Una interfaz de línea de comandos sencilla para ejecutar y diseñar imágenes nuevas en capas.
- Un daemon de servidor.
- Una biblioteca de imágenes en contenedores prediseñadas.
- Y un servidor de registros.
Estas tecnologías combinadas permitieron que los usuarios diseñaran rápidamente nuevos contenedores en capas y los compartieran con otros sin ninguna dificultad.
¿Cómo instalar Docker?
Bien, ya hablamos mucho de que son los contenedores y su historia, ahora vamos a ver cómo podemos instalar Docker para poder trabajar con contenedores.
Antes de comenzar, debemos saber que la gran ventaja de Docker es que lo podemos instalar en Windows, Linux y Mac.
Te explicaré cómo llevar a cabo este proceso de la forma más sencilla posible. De igual forma, en la página Oficial de Docker podemos encontrar esta información de forma detallada [Link].
Instalación en Windows:
Debemos descargar el paquete de la página oficial de Docker dando click en el botón azul.
Una vez que tenemos el paquete en nuestro equipo, nos dirigimos a la carpeta donde se guardó el .exe y seguimos los siguientes pasos:
- Doble click a Docker Desktop Installer.exe para correr la instalación.
- Cuando se le solicite, asegúrese de que la opción Habilitar las características de Hyper-V Windows o Instalar los componentes requeridos de Windows para WSL 2 esté seleccionada en la página Configuración.
- Siga las instrucciones del asistente de instalación para autorizar al instalador y continuar con la instalación.
- Cuando la instalación sea exitosa, haga clic en Cerrar para completar el proceso de instalación.
Nota: Si su cuenta de administrador es diferente a su cuenta de usuario, debe
agregar el usuario al grupo docker-users. Ejecute Computer Management como
administrador y vaya a:Usuarios y grupos locales> Grupos> docker-users.
Haga clic derecho para agregar el usuario al grupo.
Cierre la sesión y vuelva a iniciarla para que los cambios surtan efecto.
Iniciar Docker:
Docker Desktop no se inicia automáticamente después de la instalación. Para iniciar Docker Desktop, busque Docker y seleccione Docker Desktop en los resultados de la búsqueda.
Cuando el icono de la ballena en la barra de estado permanece fijo, Docker Desktop está en funcionamiento y se puede acceder a él desde cualquier ventana de terminal.
Cuando se completa la inicialización, Docker Desktop inicia el tutorial de incorporación. El tutorial incluye un ejercicio simple para crear una imagen de Docker de ejemplo, ejecutarla como un contenedor, empujar y guardar la imagen en Docker Hub.
¡Felicidades! Ahora está ejecutando con éxito Docker Desktop en Windows.
Conclusión
Como te contaba al inicio, en siguientes artículos llevaremos a la práctica el uso de contenedores con Docker; Por ahora, estoy seguro que estos primeros pasos te serán de mucha utilidad. Pero, como de la teoría a la práctica hay una gran diferencia, pondremos manos a la obra en un caso práctico que te permitirá entender todas las características y beneficios de trabajar con Docker.
Por último, me gustaría saber qué te ha parecido esta primera entrega, estoy seguro que tienes algunas recomendaciones que me serían de mucho valor. Puedes escribirme a amiranda@palo-it.com y feliz de conversar.
Te invito a ponerte en contacto con nosotros, nos encantaría explorar cómo podemos trabajar juntos: