Contenido del curso
0:00/13:16
Todo lo que aprenderás sobre Docker
02:12Antes de continuar aprendiendo...
Suscríbete para ver másLas tres áreas en el desarrollo de software profesional
Suscríbete para ver másVirtualización
play_circleViendo ahoraPreparando tu entorno de trabajo
Suscríbete para ver más[Bonus] Play with Docker
Suscríbete para ver másQué es y cómo funciona Docker
Suscríbete para ver másPrimeros pasos: hola mundo
Suscríbete para ver másConceptos fundamentales de Docker: contenedores
Suscríbete para ver másComprendiendo el estado de Docker
Suscríbete para ver másEl modo interactivo
Suscríbete para ver másCiclo de vida de un contenedor
Suscríbete para ver másExponiendo contenedores
Suscríbete para ver másAdministrando tu ambiente de Docker
Suscríbete para ver másDeteniendo contenedores correctamente: SHELL vs. EXEC
Suscríbete para ver másContenedores ejecutables: ENTRYPOINT vs CMD
Suscríbete para ver másEl contexto de build
Suscríbete para ver másMulti-stage build
Suscríbete para ver másDocker-in-Docker
Suscríbete para ver más¿Qué es la virtualización y por qué es importante?
La virtualización es un proceso esencial en la industria del software que permite la creación de una versión virtual de los recursos tecnológicos, como el hardware o sistemas operativos. Aunque las máquinas virtuales han sido una solución tradicional para problemas relacionados con la ejecución simultánea de aplicaciones, Docker ha propuesto un enfoque mejorado que minimiza diversas limitaciones.
¿Cuáles son las desventajas de las máquinas virtuales?
A pesar de que las máquinas virtuales han sido fundamentales en la gestión de aplicaciones y software, presentan inconvenientes significativos:
Espacio y redundancia: Las máquinas virtuales requieren una cantidad considerable de espacio, ya que incluyen sistemas operativos completos que suelen ser pesados y ocupan varios gigabytes. Además, si varias máquinas virtuales corren el mismo sistema operativo, se multiplica innecesariamente el uso de espacio en disco.
Tiempo de arranque: Iniciar una aplicación en una máquina virtual implica primero arrancar la máquina, un proceso que puede llevar tiempo y resultar en una ejecución menos eficiente, crucial cuando los usuarios requieren respuestas en tiempo real.
Costos de administración: Al ser una máquina, aunque virtual, requiere ser administrada como cualquier otra, con procesos como la actualización de sistemas y configuración de usuarios, generando costos adicionales de mantenimiento.
Incompatibilidad de formatos: Existen múltiples formatos de máquinas virtuales que no siempre son compatibles entre sí, complicando la transferencia de una máquina entre diferentes proveedores de servicios.
¿Cómo Docker optimiza la ejecución del software?
Docker optimiza la ejecución del software utilizando contenedores en lugar de máquinas virtuales. Aquí se presentan algunas características y beneficios clave:
Contenedorización: Inspirada en la estandarización del comercio marítimo, Docker introduce la contenedorización como un método estandarizado para empaquetar y desplegar software. Los contenedores son unidades flexibles y portátiles que permiten incluir todas las dependencias necesarias para ejecutar las aplicaciones sin sisptomar el sistema subyacente.
Ligereza: A diferencia de las máquinas virtuales, los contenedores reutilizan el núcleo del sistema operativo de la máquina anfitriona. Así, solo es necesario empaquetar el código de la aplicación y sus dependencias, lo que reduce significativamente el peso y tamaño del paquete.
Portabilidad: Los contenedores están diseñados para ejecutarse de manera consistente en cualquier entorno, facilitando su uso desde el desarrollo local hasta el despliegue en producción.
Seguridad y aislamiento: Los contenedores garantizan que las aplicaciones se ejecuten de manera aislada, impidiendo que interfieran entre sí o comprometan la seguridad del sistema anfitrión.
¿Por qué los contenedores se imponen sobre las máquinas virtuales?
Comparado con las máquinas virtuales, el uso de contenedores ofrece una solución más eficiente y prometedora. Visualmente, los contenedores solo contienen el código de la aplicación y los binarios o bibliotecas necesarios, mientras que Docker gestiona su ejecución sobre el sistema operativo subyacente. Esto evita la redundancia de incluir un sistema operativo completo para cada aplicación, como es común en un esquema de máquinas virtuales.
Al ser livianos, portables y seguros, los contenedores se presentan como una alternativa que permite escalar aplicaciones de manera rápida y eficiente sin perder consistencia en el funcionamiento. Es evidente que Docker, con su enfoque en la reutilización y la estandarización, simplifica y optimiza el despliegue de software, ofreciendo innovadoras ventajas sobre las soluciones tradicionales basadas en máquinas virtuales.