Durante mi aprendizaje en el curso Introduction to DevOps and Site Reliability Engineering (LFS162) de la Linux Fundation, tuve la oportunidad de realizar un laboratorio práctico para profundizar en herramientas de DevOps esenciales como Docker, Podman y Kubernetes. En este post, quiero compartir mi experiencia con estos ejercicios y ayudar a quienes están comenzando en el mundo de los contenedores y la orquestación.
Por cierto hice videos resolviendo estos ejercicios, al final del post les voy a dejar la lista de reproducción con los tres videos.
Primer Paso: Explorando Docker
Docker es una plataforma que permite a los desarrolladores empaquetar, distribuir y ejecutar aplicaciones en contenedores. Durante el laboratorio, exploré los conceptos básicos y aprendí a:
✅ Instalar Docker en mi sistema.
✅ Gestionar el ciclo de vida de los contenedores (crear, iniciar, detener y eliminar contenedores).
✅ Construir imágenes personalizadas con Dockerfile.
✅ Exponer puertos y copiar archivos dentro de un contenedor.
✅ Explorar comandos esenciales como docker ps
, docker images
, docker run
y docker stop
.
Fue un primer acercamiento clave para entender cómo los contenedores facilitan el desarrollo y la portabilidad de aplicaciones.
Esto lo dejé plasmado en el siguiente video, donde fui resolviendo los ejercicios:
Adiós Docker, ¡Hola Podman!
Después de familiarizarme con Docker, el siguiente laboratorio me llevó a explorar Podman, una alternativa a Docker que permite gestionar contenedores sin necesidad de un daemon en segundo plano y con un enfoque más seguro (rootless).
¿Cómo fue el proceso?
-
Desinstalación completa de Docker:
-
Eliminé el motor, CLI,
containerd
y Docker Compose.
-
-
Instalación y configuración de Podman:
-
Utilicé
apt
para descargar e instalar los binarios más recientes. -
Verifiqué la instalación asegurándome de que los comandos funcionaban correctamente.
-
-
Probando Podman:
-
Listé los contenedores y las imágenes disponibles en el sistema.
-
Creé un nuevo contenedor y ejecuté comandos dentro de él.
-
Aprendí que la CLI de Podman es casi idéntica a la de Docker, facilitando la transición.
-
🔍 Diferencias clave entre Docker y Podman:
-
Podman no necesita un daemon en segundo plano.
-
Es más seguro porque permite ejecutar contenedores sin privilegios de root.
-
La mayoría de los comandos son compatibles con Docker, pero algunas funciones avanzadas pueden requerir ajustes.
Si estás buscando una alternativa a Docker con un enfoque en seguridad, definitivamente vale la pena probar Podman. Este es el video donde resuelvo los ejercicios y voy experimentando:
Orquestando Contenedores con Kubernetes y kind
Finalmente, pasé al siguiente laboratorio, donde aprendí a desplegar un clúster de Kubernetes en mi entorno local utilizando kind. Kind es una herramienta que permite crear clústeres de Kubernetes dentro de contenedores Docker, ideal para entornos de desarrollo y pruebas.
Pasos del laboratorio:
-
Instalación de kind y configuración del clúster.
-
Verificación del clúster:
-
Revisé los namespaces disponibles con
kubectl get namespaces
.
-
-
Despliegue de una aplicación de ejemplo:
-
Creé un archivo
webapp.yaml
con la configuración del despliegue. -
Implementé la aplicación en Kubernetes con
kubectl apply -f webapp.yaml
.
-
-
Acceso a la aplicación:
-
Configuré el reenvío de puertos con
kubectl port-forward
. -
Probé el acceso enviando una solicitud HTTP.
-
-
Eliminación del despliegue para limpiar el entorno.
🔍 ¿Por qué usar kind?
-
Permite probar Kubernetes sin necesidad de una infraestructura compleja.
-
Es rápido y liviano, ideal para desarrollo local.
-
Funciona con herramientas estándar de Kubernetes como
kubectl
.
Si quieres aprender Kubernetes sin depender de un proveedor en la nube, kind es una excelente opción para empezar.
En el video me voy equivocando e investigando en el camino:
Conclusión
Este lab me ayudó a comprender mejor el ecosistema de contenedores y Kubernetes. Docker es una herramienta fundamental, pero explorar alternativas como Podman y aprender a orquestar contenedores con Kubernetes me permitió ampliar mis conocimientos en DevOps.
No me despido sin antes dejarles la lista de reproducción con los videos.
Si estás iniciando en este mundo, te recomiendo probar estos ejercicios por ti mismo. ¡Espero que este post te ayude en tu aprendizaje! 🚀
📢 Si te interesa más contenido sobre contenedores, Kubernetes y DevOps, sígueme para más publicaciones.
Comentarios