Skip to content

🧪 Laboratorio: Ciclo de Vida de Contenedores con Podman

🎯 Objetivo

Aprender el ciclo de vida básico de un contenedor utilizando Podman, comprendiendo los estados y operaciones fundamentales: descarga, ejecución, detención, reinicio y eliminación de contenedores.


🧰 Requisitos

  • Sistema operativo: Rocky Linux, Fedora, RHEL o similar.
  • Podman instalado (sudo dnf install -y podman).
  • Acceso a la terminal.

🛠️ 1. Verificar instalación de Podman

podman --version

📥 2. Descargar una imagen de contenedor

podman pull docker.io/library/nginx:alpine

🚀 3. Crear y ejecutar un contenedor

podman run -d --name nginx-test -p 30080:80 nginx:alpine

🔍 Se ejecuta en segundo plano (-d), se asigna un nombre (--name), y se publica el puerto 80 del contenedor en el 30080 del host.

👀 4. Verificar que el contenedor está en ejecución

podman ps

Puedes probarlo desde el navegador o con curl, asegurar se de reemplazar por el FQDN correcto:

curl http://student-0-aio.35-227-133-255.nip.io:30080

🛑 5. Detener un contenedor

podman stop nginx-test
El contenedor sigue existiendo, pero ahora está detenido.

▶️ 6. Iniciar un contenedor detenido

podman start nginx-test

🔁 7. Reiniciar el contenedor

podman restart nginx-test

📄 8. Ver detalles del contenedor

podman inspect nginx-test
Devuelve un archivo en formato JSON con configuración, volúmenes, red, etc.

🧼 9. Eliminar el contenedor

Primero debes detenerlo si está activo:

podman stop nginx-test
Luego lo eliminas:
podman rm nginx-test

🗑️ 10. Eliminar la imagen descargada

podman rmi nginx:alpine

📚 Comandos útiles adicionales

podman ps -a # Lista todos los contenedores (corriendo y detenidos).
podman logs nginx-test # Muestra los logs del contenedor.
podman top nginx-test # Muestra los procesos dentro del contenedor.
podman exec -it nginx-test sh # Accede al contenedor con una shell.

🧠 Conclusión

Con esta práctica revisamos el ciclo de vida de un contenedor: pullrunstop/startinspectremove, utilizando Podman de forma segura, sin daemon y 100% compatible con Docker.