Configurer un conteneur Podman pour un démarrage automatique via un service utilisateur systemd

Red Hat Enterprise LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez apprendre à configurer un conteneur Podman pour qu'il démarre automatiquement en tant que service utilisateur systemd. Il s'agit d'une pratique courante et recommandée dans les environnements Red Hat Enterprise Linux (RHEL) pour garantir que vos applications conteneurisées sont opérationnelles et disponibles dès le démarrage du système. En relevant ce défi, vous acquerrez une expérience concrète dans la gestion du cycle de vie des conteneurs avec podman et leur intégration au processus d'initialisation systemd du système, une compétence fondamentale pour tout administrateur système.

Configurer un conteneur pour un démarrage automatique via un service systemd

Au cours de cet exercice, vous allez configurer un conteneur pour qu'il se lance automatiquement en tant que service systemd. Cette méthode est indispensable pour s'assurer que vos services conteneurisés restent accessibles en permanence.

Tâches

Votre objectif est de déployer un serveur web Nginx dans un conteneur Podman et de le configurer pour qu'il s'exécute automatiquement lors du démarrage de la machine.

  • Créer et lancer un conteneur podman basé sur l'image nginx:latest.
  • Générer un fichier d'unité de service utilisateur systemd pour ce conteneur.
  • Activer le service pour qu'il démarre automatiquement pour l'utilisateur labex.
  • Activer la persistance de session (lingering) pour l'utilisateur labex afin de garantir que le service démarre au boot, même sans session utilisateur active.
  • Vérifier que le conteneur est bien en cours d'exécution et que le service Nginx répond aux requêtes.

Critères de réussite

  • Vous devez utiliser exclusivement podman pour toutes les tâches de gestion des conteneurs.
  • L'image du conteneur doit être docker.io/library/nginx:latest.
  • Le conteneur doit être nommé my-nginx.
  • Le conteneur doit mapper le port hôte 8080 vers le port 80 du conteneur.
  • Le fichier de service systemd doit être généré via la commande podman generate systemd.
  • Le fichier de service généré doit être placé dans le répertoire ~/.config/systemd/user/container-my-nginx.service.
  • La persistance de session (lingering) doit être activée pour l'utilisateur labex à l'aide de loginctl.

Exemple

Une fois ce défi terminé, vous devriez pouvoir accéder à la page d'accueil de Nginx en exécutant curl http://localhost:8080. Le résultat devrait ressembler à ceci :

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Résumé

Dans ce défi, vous avez appris à utiliser podman pour créer un conteneur, puis à générer un service utilisateur systemd pour orchestrer son cycle de vie. Vous avez configuré le service pour un démarrage automatique et activé la persistance de session (lingering) pour assurer son lancement dès le démarrage du système. Ce processus est fondamental pour déployer des applications conteneurisées résilientes sur RHEL et ses dérivés, offrant une alternative robuste aux méthodes traditionnelles.

✨ Vérifier la solution et pratiquer