Skip to content

🧪 Laboratorio: Creación de Imágenes de Contenedores con Podman

🎯 Objetivo

Aprender a construir una imagen de contenedor personalizada utilizando Podman y un Containerfile, subirla a Docker Hub y limpiar el entorno después del laboratorio.


🧰 Requisitos

  • Sistema operativo: Rocky Linux, Fedora, RHEL o similar.
  • Podman instalado.
  • Tener una cuenta en Docker Hub.
  • Estar autenticado en Docker Hub con Podman:
podman login docker.io

📁 1. Crear un directorio de trabajo

mkdir -p ~/podman-lab/src
cd ~/podman-lab

📝 2. Crear archivo de aplicación index.html

echo "<p style=\"color:red; font-size:100px\">Imagen creada desde un Dockerfile</p>" > src/index.html

🏗️ 3. Crear el siguiente archivo Containerfile

vi Containerfile
El contenido debería de ser el siguiente:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Este comentario es ignorado, pero es útil para describir instrucciones
FROM opensuse/leap:15.3
LABEL description="Servicio de nginx en imagen opensuse"
LABEL maintainer="John Doe <jdoe@xyz.com>"
RUN zypper -n install nginx && \
    zypper clean --all
ARG PORT=80 
EXPOSE $PORT
COPY ./src/index.html /srv/www/htdocs/index.html
ENV URL_IMAGE="https://bit.ly/3K6mGZY"
RUN echo "<img src=${URL_IMAGE}>" >> /srv/www/htdocs/index.html
VOLUME /downloads
CMD ["nginx", "-g", "daemon off;"]

🔧 4. Construir la imagen personalizada

podman build -t mi-nginx:1.0 .
-t asigna una etiqueta (nombre:versión) a la imagen creada.

✅ 5. Verificar la imagen

podman images

🚀 6. Probar la imagen localmente

podman run -d --name mi-nginx-test -p 30080:80 mi-nginx:1.0
podman ps

✅ Deberías ver contenedor nginx-test ejecutándose.

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

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

🏷️ 7. Etiquetar (tag) la imagen para Docker Hub

Asegurarse de reemplazar el valor correspondiente, según tu nombre de usuario en Docker Hub.

podman tag mi-nginx:1.0 docker.io/<tu_usuario>/mi-nginx:1.0

☁️ 8. Subir (push) la imagen a Docker Hub

Asegurarse de reemplazar el valor correspondiente, según tu nombre de usuario en Docker Hub.

podman push docker.io/<tu_usuario>/mi-nginx:1.0

🧽 9. Limpieza del entorno

Detener y eliminar el contenedor:

podman stop mi-nginx-test
podman rm mi-nginx-test
Eliminar la imagen local:
podman rmi mi-nginx:1.0 docker.io/<tu_usuario>/mi-nginx:1.0
# Considera eliminar el repositorio también del Docker Hub
Eliminar archivos locales:
cd ~/
rm -rf ~/podman-lab

🧠 Conclusión

En este laboratorio se hicieron las siguientes actividades:

  • Crear una imagen personalizada con Podman.
  • Usar un Containerfile.
  • Etiquetar y subir imágenes a Docker Hub.
  • Gestionar el entorno de forma limpia y segura.