Configuración de un contenedor Podman para su inicio automático como servicio de usuario de systemd

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

En este desafío, aprenderás a configurar un contenedor Podman para que se inicie automáticamente como un servicio de usuario de systemd. Esta es una práctica común y recomendada en entornos Red Hat Enterprise Linux (RHEL) para garantizar que tus aplicaciones en contenedores estén operativas y disponibles en cuanto el sistema arranque. Al completar este ejercicio, adquirirás experiencia práctica en la gestión del ciclo de vida de los contenedores con podman y su integración con el proceso de inicio systemd del sistema, una competencia esencial para cualquier administrador de sistemas.

Configurar un contenedor para que se inicie automáticamente como servicio de systemd

En esta sección, configurarás un contenedor para que se inicie de forma automática mediante un servicio de systemd. Esto resulta de gran utilidad para asegurar que tus servicios web o aplicaciones estén siempre disponibles.

Tareas

Tu objetivo es ejecutar un servidor web Nginx en un contenedor Podman y configurarlo para que se lance automáticamente al iniciar el sistema.

  • Crear y ejecutar un contenedor podman basado en la imagen nginx:latest.
  • Generar un archivo de unidad de servicio de usuario de systemd para dicho contenedor.
  • Habilitar el servicio para que se inicie automáticamente para el usuario labex.
  • Activar la persistencia (lingering) para el usuario labex, asegurando que el servicio arranque al encender el equipo, incluso sin una sesión de usuario activa.
  • Verificar que el contenedor esté en ejecución y que el servicio Nginx sea accesible.

Requisitos

  • Debes utilizar podman para todas las tareas de gestión de contenedores.
  • La imagen del contenedor debe ser docker.io/library/nginx:latest.
  • El contenedor debe llamarse my-nginx.
  • El contenedor debe mapear el puerto 8080 del host al puerto 80 del contenedor.
  • El archivo de servicio de systemd debe generarse mediante el comando podman generate systemd.
  • El archivo de servicio generado debe ubicarse en ~/.config/systemd/user/container-my-nginx.service.
  • Se debe habilitar el "lingering" para el usuario labex utilizando loginctl.

Ejemplo

Tras completar el desafío, deberías poder acceder a la página de bienvenida de Nginx ejecutando curl http://localhost:8080. El resultado debería ser similar a este:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
✨ Revisar Solución y Practicar

Resumen

En este desafío, has aprendido a utilizar podman para crear un contenedor y generar un servicio de usuario de systemd para gestionar su ciclo de vida. Has configurado el servicio para que se inicie automáticamente y has habilitado la persistencia de sesión para garantizar su ejecución desde el arranque del sistema. Este proceso es fundamental para desplegar aplicaciones en contenedores de forma resiliente en RHEL y sistemas similares, ofreciendo una alternativa robusta a los métodos tradicionales.