Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Contenedores y Docker: la caja aislada

4 tareas · 20 min · Principiante

Antes, para levantar un servicio aislado necesitabas una máquina virtual completa con gigabytes de disco y su propio sistema operativo. Hoy la industria empaqueta aplicaciones en contenedores Docker que arrancan en segundos. En esta sala aprenderás qué es un contenedor por dentro, cómo comparte el kernel de Linux y por qué no es una máquina virtual completa.

0 de 4 · 0%

Objetivo de la sala

Antes, para levantar un servicio aislado necesitabas una máquina virtual completa con gigabytes de disco y su propio sistema operativo. Hoy la industria empaqueta aplicaciones en contenedores Docker que arrancan en segundos. En esta sala aprenderás qué es un contenedor por dentro, cómo comparte el kernel de Linux y por qué no es una máquina virtual completa.

Una Máquina Virtual (VM) emula hardware completo mediante un hipervisor (como VMware o VirtualBox): tiene su propia BIOS, su propio kernel y gestiona su propia memoria virtual, pesando gigabytes. Un contenedor Docker no emula hardware ni lleva su propio kernel: es simplemente un proceso ordinario de Linux confinado en una 'jaula' mediante dos funciones del sistema operativo: namespaces (que aíslan lo que el proceso puede ver) y cgroups (que limitan cuánta memoria y CPU puede gastar).

Responde para continuar

¿Qué componente del sistema operativo comparten todos los contenedores Docker que corren en un mismo servidor?

Ver pista de ayuda

Los contenedores comparten el núcleo del anfitrión y solo aíslan los procesos del usuario.

En Docker existen dos conceptos esenciales: 1) La Imagen: es una plantilla de solo lectura que contiene el sistema de archivos empaquetado (el código, las librerías y las dependencias necesarias). 2) El Contenedor: es una instancia viva en ejecución creada a partir de esa imagen. Puedes lanzar diez contenedores idénticos de un servidor web desde una sola imagen; si uno se corrompe o falla, se destruye y se recrea en un segundo sin alterar la imagen original.

Responde para continuar

¿Cuál es la relación entre una imagen de Docker y un contenedor en ejecución?

Ver pista de ayuda

La imagen define qué contiene el paquete y el contenedor es el proceso que corre esa receta.

Por defecto, un contenedor vive en una red interna privada (como 172.17.0.2) y nadie fuera del servidor puede comunicarse con él. Para publicar su servicio se realiza un reenvío de puertos mediante el parámetro -p: por ejemplo, docker run -p 8080:80 nginx. Esto indica al cortafuegos del host que cualquier paquete que llegue al puerto 8080 del servidor físico debe redirigirse al puerto 80 dentro del contenedor.

Responde para continuar

En la orden docker run -p 8080:80, ¿qué representa el número 8080?

Ver pista de ayuda

La sintaxis host:contenedor asigna primero el puerto visible en la máquina física.

Si no se indica lo contrario en el Dockerfile, los procesos dentro del contenedor se ejecutan bajo la cuenta root (UID 0). Dado que el contenedor comparte el kernel del anfitrión, si un atacante explota una vulnerabilidad en el software y logra escapar del contenedor (Container Escape), aterriza en el servidor anfitrión con los máximos privilegios posibles. La buena práctica consiste en definir un usuario sin privilegios (USER appuser) dentro del contenedor.

Responde para continuar

¿Por qué es una mala práctica de seguridad ejecutar aplicaciones dentro de Docker como el usuario root?

Ver pista de ayuda

El UID 0 dentro del contenedor coincide con el UID 0 del kernel del anfitrión si no hay aislamiento de usuarios.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio y la seguridad de tu sesión y, solo si lo autorizas, analítica. Puedes aceptar, rechazar o personalizar. Política de Cookies · Política de Privacidad