Conceptos fundamentales de Docker: contenedores

Clase 9 de 33Curso de Docker

Contenido del curso

Resumen

¿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.

      Conceptos fundamentales de Docker: contenedores