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
nginxdesde el registrodocker.ioutilizando el comandopodman. - Ejecuta un contenedor a partir de la imagen
nginxy verifica que esté operativo.
Requisitos
- El contenedor
nginxdebe llamarsemy-nginx. - El contenedor debe ejecutarse en segundo plano (modo desatendido o detached).
- El puerto
80del contenedor debe estar mapeado al puerto8080de 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>
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-nginxque está en ejecución. - Redirige la salida de la inspección a un archivo.
Requisitos
- Utiliza el comando
podman inspectpara obtener los detalles del contenedormy-nginx. - Guarda la salida JSON en un archivo llamado
nginx-inspect.jsondentro 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": {
...
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
skopeopara copiar la imagennginx:latestdesdedocker.ioa 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.confpara configurarlocalhost:5000como un registro no seguro utilizando el formato v2. Necesitarás privilegios desudopara esto. - Utiliza
skopeo copypara copiar la imagendocker.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 pullpara recuperarlocalhost:5000/my-local-nginx:latest.
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.



