Docker & Kubernetes
Curso orientado a entender contenedores y orquestación desde una perspectiva operativa. El alumno aprende a construir imágenes con Docker, ejecutar servicios con persistencia y red local, y desplegar aplicaciones en Kubernetes con conceptos como pods, deployments, services, ingress, configuración, observabilidad y seguridad.
Docker y Kubernetes suelen estudiarse juntos, pero resuelven problemas diferentes. Docker se centra en empaquetar y ejecutar aplicaciones en contenedores; Kubernetes coordina contenedores a escala, gestiona estado deseado, exposición, configuración, tolerancia a fallo y despliegues controlados. El curso une ambas capas para que el alumno entienda el recorrido completo desde `Dockerfile` hasta pipeline y clúster.
El primer modulo es gratuito. Solicita informacion para conocer las condiciones de acceso al curso completo.
Proximamente a la venta. El primer modulo es gratuito: registrate y empieza.
Modulo 01. Introduccion a contenedores y Docker
Objetivo del modulo
Comprender que resuelve la contenedorizacion y como Docker separa imagen, contenedor y runtime para ofrecer portabilidad, reproducibilidad y aislamiento.
Resultados esperados
- Distinguir imagen de contenedor.
- Explicar por que un contenedor no es una maquina virtual pequena.
- Entender el ciclo basico de build, pull, run y stop.
- Ejecutar un contenedor basico desde linea de comandos.
Desarrollo teorico
Los contenedores encapsulan aplicacion y dependencias en una unidad portable y repetible. A diferencia de una VM, no replican un sistema operativo completo sino que comparten kernel del host y aislan procesos, red y sistema de archivos mediante mecanismos del sistema operativo (namespaces y cgroups en Linux). Docker popularizo este modelo simplificando build, distribucion y ejecucion de contenedores hasta hacerlos accesibles a cualquier equipo de desarrollo u operaciones.
Contenedor vs. VM. Una maquina virtual incluye un sistema operativo completo sobre un hypervisor. Un contenedor comparte el kernel del host y solo contiene la aplicacion y sus dependencias. Esto tiene consecuencias practicas directas:
| Aspecto | VM | Contenedor |
|---|---|---|
| Arranque | Minutos | Segundos o milisegundos |
| Tamano tipico | GBs (SO completo) | MBs a cientos de MBs |
| Aislamiento | Hardware virtual (fuerte) | Kernel compartido (mas ligero) |
| Portabilidad | Limitada por hypervisor | Alta (imagen estandar OCI) |
| Densidad | Decenas por host | Cientos por host |
Esto no significa que los contenedores sean "mejores" que las VMs. Son herramientas diferentes. Las VMs ofrecen aislamiento mas fuerte (kernel propio) y son adecuadas cuando se necesitan sistemas operativos distintos o aislamiento estricto. Los contenedores son ideales para aplicaciones microservicio, pipelines de CI/CD y despliegues rapidos con alta densidad.
Imagen, contenedor y runtime. Estos tres conceptos son la base de Docker y fuente de confusion frecuente:
- Imagen: Plantilla inmutable compuesta por capas. Contiene SO base, dependencias, codigo de la aplicacion y configuracion. Se construye con un Dockerfile y se almacena en un registro.
- Contenedor: Instancia en ejecucion de una imagen. Tiene estado de proceso, red asignada y sistema de archivos efimero. Si se elimina el contenedor, los datos no persistidos se pierden.
- Runtime: Capa que crea y gestiona contenedores. Docker Engine es el runtime mas conocido, pero existen otros como containerd, CRI-O o Podman.
Si confundes imagen y contenedor, aparecen errores frecuentes: creer que modificar un contenedor cambia automaticamente la imagen, asumir que el estado vive dentro del contenedor para siempre o pensar que reiniciar un contenedor equivale a "reiniciar un servidor". El proceso principal del contenedor (PID 1) define su vida: si termina, el contenedor termina.
El ciclo basico de Docker. Los comandos fundamentales son:
# Descargar una imagen desde un registro
docker pull nginx:1.25-alpine
# Ejecutar un contenedor desde la imagen
docker run -d --name web -p 8080:80 nginx:1.25-alpine
# Verificar contenedores en ejecucion
docker ps
# Ver logs del contenedor
docker logs web
# Detener el contenedor
docker stop web
# Eliminar el contenedor
docker rm web
# Listar imagenes locales
docker images
Desglose de docker run -d --name web -p 8080:80 nginx:1.25-alpine:
-d: Ejecutar en segundo plano (detached).--name web: Asignar nombre al contenedor.-p 8080:80: Mapear puerto 8080 del host al puerto 80 del contenedor.nginx:1.25-alpine: Imagen y tag a usar.
Persistencia y volumenes. Por defecto, los datos dentro de un contenedor son efimeros. Si el contenedor se elimina, los datos desaparecen. Para datos que deben persistir (bases de datos, uploads, configuraciones), Docker ofrece volumenes:
# Crear un volumen
docker volume create datos-app
# Ejecutar contenedor con volumen montado
docker run -d --name db -v datos-app:/var/lib/postgresql/data postgres:16-alpine
El volumen datos-app sobrevive al contenedor: si eliminas y recreas db, los datos siguen ahi.
Redes. Docker crea redes virtuales para conectar contenedores. Por defecto existe la red bridge. Para que dos contenedores se comuniquen por nombre, se crea una red personalizada:
docker network create mi-red
docker run -d --name api --network mi-red node-api:1.0
docker run -d --name db --network mi-red postgres:16-alpine
# Desde el contenedor 'api', se puede resolver 'db' como hostname
Registros. Las imagenes se almacenan en registros: Docker Hub (publico por defecto), GitHub Container Registry (ghcr.io), Amazon ECR, Azure ACR, Google Artifact Registry. En entornos corporativos se usan registros privados para controlar que imagenes se despliegan.
Por que Docker importa para operaciones y plataforma. Docker resuelve el clasico problema de "en mi maquina funciona". Al encapsular aplicacion y dependencias en una imagen, el entorno de ejecucion es identico en desarrollo, CI, staging y produccion. Esto reduce drasticamente los bugs de entorno y simplifica el despliegue. Ademas, las imagenes son la base de Kubernetes, que orquesta contenedores a escala.
Contenido ampliado
| Concepto | Definicion | Ejemplo practico |
|---|---|---|
| Imagen | Plantilla inmutable con aplicacion y dependencias | nginx:1.25-alpine |
| Contenedor | Instancia en ejecucion de una imagen | docker run nginx |
| Runtime | Capa que crea y gestiona contenedores | Docker Engine, containerd, Podman |
| Registro | Repositorio para publicar y descargar imagenes | Docker Hub, ECR, ACR |
| Volumen | Almacenamiento persistente fuera del contenedor | docker volume create datos |
| Red | Conectividad entre contenedores | docker network create mi-red |
Puntos clave
- Contenedor no es sinonimo de VM; comparten kernel y aislan por namespaces.
- La imagen se construye (build); el contenedor se ejecuta (run).
- El proceso principal (PID 1) gobierna el ciclo de vida del contenedor.
- Los datos efimeros desaparecen al eliminar el contenedor; los volumenes persisten.
- Las imagenes son la base de Docker, Kubernetes y los pipelines de CI/CD modernos.
- Docker resuelve problemas de paridad de entorno entre desarrollo y produccion.
Checklist operativa
- Identificar que parte es build (imagen) y cual es runtime (contenedor).
- Confirmar que datos deben persistir fuera del contenedor mediante volumenes.
- Entender como se distribuye la imagen entre entornos via registros.
- Verificar que el proceso principal es el adecuado para el servicio.
- Usar tags especificos, no
latest, para reproducibilidad. - Configurar redes para comunicacion entre contenedores.
Errores frecuentes
- Guardar estado importante dentro del contenedor sin volumen.
- Depender de cambios manuales sobre contenedores corriendo en vez de reconstruir la imagen.
- No entender que proceso mantiene vivo el contenedor.
- Confundir contenedor con VM y esperar comportamiento identico.
- Usar
latestcomo tag y perder reproducibilidad. - No limpiar imagenes y contenedores antiguos y llenar el disco.
Practica sugerida
Ejecuta los siguientes pasos en tu entorno: (1) descarga la imagen nginx:1.25-alpine, (2)
lanza un contenedor mapeando el puerto 8080, (3) accede desde el navegador, (4) inspecciona
los logs, (5) detente y elimina el contenedor, (6) verifica que la imagen sigue disponible
localmente. Bonus: lanza un segundo contenedor con un volumen montado y verifica que los datos
persisten tras eliminar y recrear el contenedor.
Preguntas de autoevaluacion
- Que diferencia fundamental hay entre imagen y contenedor.
- Por que un contenedor no se comporta igual que una VM y que implicaciones tiene.
- Que ocurre si el proceso principal (PID 1) del contenedor termina.
- Cuando necesitas un volumen y que pasa si no lo usas.
- Por que Docker facilita la paridad entre desarrollo y produccion.
Cierre
Entender bien imagen, contenedor y runtime es el fundamento sobre el que se construye todo lo demas: Dockerfiles, Docker Compose, Kubernetes y los pipelines modernos de entrega de software.
Aprender a construir imagenes reproducibles, pequenas y trazables mediante Dockerfiles bien disenados y a gestionarlas en registros de contenedores.
Que aprenderas
- Redactar un Dockerfile basico con buen orden de capas.
- Entender cache de build y multi-stage builds.
- Versionar y publicar imagenes en un registro.
- Aplicar buenas practicas de seguridad y tamano en la construccion de imagenes.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Modelar entornos locales con varios servicios y persistencia sin recurrir a configuraciones manuales frágiles.
Que aprenderas
- Entender redes bridge, puertos publicados y resolución por nombre.
- Usar volúmenes para persistir datos.
- Organizar varios servicios con Compose o enfoque similar.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Comprender qué problema resuelve Kubernetes y cómo se estructura un clúster de forma básica.
Que aprenderas
- Explicar control plane, worker nodes y kubelet.
- Entender el concepto de estado deseado.
- Relacionar Kubernetes con despliegues distribuidos y resiliencia.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Aprender los recursos básicos que permiten ejecutar y exponer aplicaciones en Kubernetes.
Que aprenderas
- Explicar qué es un Pod y por qué suele ser la unidad mínima de despliegue.
- Entender el papel de Deployment para réplicas y actualizaciones.
- Diferenciar tipos básicos de Service.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Separar configuración, credenciales y datos persistentes del ciclo de vida del contenedor.
Que aprenderas
- Distinguir ConfigMap de Secret.
- Entender PersistentVolume y PersistentVolumeClaim a nivel base.
- Evitar malas prácticas de configuración embebida.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Entender cómo se publica tráfico hacia aplicaciones Kubernetes y cómo se organiza el acceso HTTP/HTTPS.
Que aprenderas
- Explicar la diferencia entre Service e Ingress.
- Entender el papel de un Ingress Controller.
- Relacionar exposición externa con routing y seguridad.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Disponer de una base para observar y diagnosticar fallos en contenedores y clústeres.
Que aprenderas
- Entender fuentes básicas de logs y eventos.
- Diagnosticar fallos comunes de imagen, configuración o scheduling.
- Relacionar observabilidad con operación estable.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Reducir riesgos en imagen, runtime y clúster con principios de endurecimiento razonables.
Que aprenderas
- Aplicar buenas prácticas de imagen y runtime.
- Entender conceptos básicos de RBAC, políticas y escaneo.
- Evitar errores comunes de seguridad en contenedores.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
Entender cómo encajan build, test, scan, publicación y despliegue en un flujo CI/CD basado en contenedores.
Que aprenderas
- Relacionar pipeline con calidad y trazabilidad de artefactos.
- Diseñar una secuencia básica de build, scan y deploy.
- Entender la diferencia entre imagen construida y versión desplegada.
Contenido del modulo
- Desarrollo teorico
- Contenido ampliado
- Puntos clave
- Checklist operativa
- Errores frecuentes
- Practica sugerida
- Preguntas de autoevaluacion
- Cierre
Adquiere el curso para acceder al contenido completo de este modulo.
El primer modulo es gratuito. Adquiere el curso para acceder a los 9 modulos restantes, el examen y el certificado.
Crear cuenta gratisResultados de aprendizaje
- Construir imágenes eficientes y seguras con Docker.
- Ejecutar servicios con redes, volúmenes y composición local reproducible.
- Explicar la arquitectura base de Kubernetes y el papel de sus recursos principales.
- Desplegar, configurar, exponer y observar aplicaciones contenedorizadas.
- Aplicar principios básicos de seguridad y pipeline para contenedores.
Publico objetivo
- Desarrolladores y DevOps que empiezan con contenedores. - Administradores que necesitan entender despliegues modernos. - Equipos de plataforma que quieren una base seria antes de profundizar.
Requisitos previos
Ayuda conocer Linux básico, redes, procesos, ficheros de configuración y conceptos de despliegue de aplicaciones. No es imprescindible experiencia previa con contenedores.
Examen disponible
Este curso incluye un examen de 18 preguntas. El examen y el certificado forman parte del acceso completo.
Crear cuenta gratis