Gestión de Contenedores con Podman y Skopeo

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

Como administrador de sistemas que trabaja con Red Hat Enterprise Linux (RHEL), la gestión de aplicaciones en contenedores es una habilidad fundamental. En este desafío, utilizarás las herramientas de línea de comandos podman y skopeo para realizar tareas esenciales de administración de contenedores. Practicarás la descarga de imágenes desde un registro público, su ejecución como contenedores, la inspección de su configuración y la copia de imágenes a un registro local.

Descargar y Ejecutar una Imagen de Contenedor

Tu primera tarea consiste en descargar una imagen de contenedor desde un registro público y ejecutarla en tu sistema local. Utilizarás la imagen del servidor web nginx, una opción muy común para demostrar el funcionamiento de los contenedores.

Tareas

  • Descarga la última imagen del contenedor nginx desde el registro docker.io utilizando el comando podman.
  • Ejecuta un contenedor a partir de la imagen nginx y verifica que esté operativo.

Requisitos

  • El contenedor nginx debe llamarse my-nginx.
  • El contenedor debe ejecutarse en segundo plano (modo desatendido o detached).
  • El puerto 80 del contenedor debe estar mapeado al puerto 8080 de tu máquina local.

Ejemplo

Tras ejecutar el contenedor con éxito, puedes probar su disponibilidad. El comando curl debería devolver la página de bienvenida predeterminada de Nginx.

$ curl http://localhost:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
✨ Revisar Solución y Practicar

Inspeccionar un Contenedor

Después de ejecutar un contenedor, a menudo es necesario obtener información detallada sobre su configuración, ajustes de red y volúmenes montados. El comando podman inspect proporciona esta información en un formato JSON estructurado.

Tareas

  • Inspecciona el contenedor my-nginx que está en ejecución.
  • Redirige la salida de la inspección a un archivo.

Requisitos

  • Utiliza el comando podman inspect para obtener los detalles del contenedor my-nginx.
  • Guarda la salida JSON en un archivo llamado nginx-inspect.json dentro del directorio ~/project/containers/.

Ejemplo

El archivo nginx-inspect.json contendrá un gran array JSON con todos los detalles de configuración del contenedor. Puedes ver su contenido con el comando cat o less.

$ cat ~/project/containers/nginx-inspect.json
[
    {
        "Id": "a933dd...c8e",
        "Created": "2023-10-27T10:30:00.123456789Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
...
✨ Revisar Solución y Practicar

Copiar una Imagen de Contenedor con Skopeo

skopeo es una potente herramienta para mover imágenes de contenedores entre diferentes tipos de almacenamiento, como registros públicos, almacenamiento local y registros privados. En este paso, copiarás la imagen nginx a un registro de contenedores local que se está ejecutando en tu máquina.

Por defecto, Podman y Skopeo no enviarán imágenes a un registro no seguro (HTTP). Primero debes configurar tu sistema para que confíe en el registro local utilizando el formato de configuración de registros v2.

Tareas

  • Configura tu sistema para permitir el envío de imágenes al registro local no seguro en localhost:5000.
  • Utiliza skopeo para copiar la imagen nginx:latest desde docker.io a tu registro local.
  • Descarga la imagen desde tu registro local al almacenamiento de Podman para verificar que la copia se realizó correctamente.

Requisitos

  • Edita el archivo /etc/containers/registries.conf para configurar localhost:5000 como un registro no seguro utilizando el formato v2. Necesitarás privilegios de sudo para esto.
  • Utiliza skopeo copy para copiar la imagen docker.io/library/nginx:latest.
  • El destino de la imagen en el registro local debe ser localhost:5000/my-local-nginx:latest.
  • Tras la copia, utiliza podman pull para recuperar localhost:5000/my-local-nginx:latest.
✨ Revisar Solución y Practicar

Resumen

En este desafío, has adquirido las habilidades esenciales para gestionar contenedores en un sistema Red Hat Enterprise Linux. Has utilizado con éxito podman para descargar una imagen, ejecutarla como un contenedor con nombre y mapeo de puertos, e inspeccionar su configuración detallada. Además, has practicado una tarea crítica en entornos reales: configurar un registro no seguro y utilizar skopeo para copiar una imagen desde una fuente pública a un registro privado local. Estos comandos son herramientas fundamentales para cualquier administrador de sistemas que trabaje en un entorno moderno basado en contenedores.