Contenido del curso
0:00/4:15
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
Suscríbete para ver másPreparando 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
play_circleViendo ahoraComprendiendo 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 un contenedor en Docker?
Un contenedor en Docker es el elemento más esencial y fundamental del ecosistema Docker. Comprender la importancia de los contenedores es crucial para aprovechar al máximo sus capacidades. Los contenedores son donde tus aplicaciones se ejecutarán, permitiéndote correr software de manera ágil y eficiente. Este concepto puede resultar un tanto abstracto al principio, pero resulta más sencillo entenderlo si lo comparamos con las máquinas virtuales.
¿Cómo se comparan los contenedores con las máquinas virtuales?
Los contenedores pueden ser comparados con máquinas virtuales ligeras. Aunque ofrecen funcionalidades similares, los contenedores son más rápidos y menos pesados que las máquinas virtuales tradicionales. Aquí tienes algunas diferencias clave:
Máquina virtual: Es un programa que simula una computadora completa, con su propio sistema operativo, memoria, discos, y interfaces de red. Está virtualizada completamente.
Contenedor: Es más bien una agrupación lógica de procesos que se ejecutan de manera nativa pero aislados del sistema anfitrión. Utiliza el mismo sistema operativo y kernel que la máquina anfitriona, pero con acceso limitado según lo que definamos.
¿Cómo funciona el aislamiento de un contenedor?
El aislamiento es una característica distintiva de los contenedores. Un contenedor solo puede interactuar con las partes del sistema anfitrión a las que se le dé acceso explícitamente. Este control de recursos es una ventaja significativa, permitiendo los siguientes beneficios:
Limitación de recursos: Puedes definir límites específicos para lo que un contenedor puede usar. Por ejemplo, si tu máquina tiene 8 GB de RAM, puedes configurar un contenedor para que solo utilice 2 GB. El contenedor ‘cree’ que solo tiene acceso a estos 2 GB, el resto del sistema es invisible para él.
Seguridad y encapsulación: Los procesos dentro del contenedor piensan que están corriendo en un sistema independiente similar al concepto de la película The Truman Show. No tienen conocimiento del entorno fuera del contenedor, dando una capa de seguridad.
¿Cómo se ejecuta un contenedor?
Ejecutar un contenedor en Docker es sorprendentemente simple gracias al comando docker run. Aquí, puedes definir los límites y permisos para tu contenedor. Por ejemplo:
docker run -m 2048m --cpus=".5" imagen_cont
Este comando lanzará un contenedor con un máximo de 2 GB de RAM y un límite del 50% del CPU.
-m 2048m: Establece la memoria máxima en 2048 MB.--cpus=".5": Limita al contenedor a usar el 50% de un CPU.¿Cuáles son las ventajas de usar contenedores?
Utilizar contenedores en Docker trae múltiples beneficios, entre ellos:
Eficiencia de recursos: Al compartir el mismo sistema operativo, los contenedores son más eficientes en el uso de recursos en comparación con las máquinas virtuales.
Portabilidad: Puedes mover contenedores entre diferentes entornos de manera más fluida, asegurando que el software funcione de manera consistente.
Rapidez: El inicio y parada de contenedores es más rápido debido a que no hay necesidad de arrancar un sistema operativo completo.
Los contenedores han revolucionado la manera en que distribuimos y ejecutamos software, reduciendo las barreras entre desarrollo y producción. Continúa explorando y experimentando con Docker para dominar estas herramientas potentes y adaptables.