← Retour au portail

Module V5 – Conteneurisation avec Podman

📘 Fiche de cours ⏱️ 3h 🎯 Bloc 2 – SISR
Objectifs : découvrir Podman, alternative à Docker sans daemon, gérer les pods, les volumes et utiliser Quadlet.

📖 Introduction

Podman est un moteur de conteneurs open-source, sans daemon, compatible avec les commandes Docker. Il permet d'exécuter des conteneurs et des pods (groupes de conteneurs) de manière sécurisée, sans privilèges root.

🎯

À l'issue de ce module, vous serez capable de :

  • Installer Podman et comprendre son architecture sans daemon.
  • Exécuter des conteneurs avec Podman.
  • Créer et gérer des pods.
  • Utiliser Podman pour les volumes, les réseaux et Quadlet.

📐 Podman vs Docker

CaractéristiquePodmanDocker
DaemonSans daemon (fork/exec)Avec daemon (dockerd)
Mode rootlessNatifNécessite configuration
PodsSupport natif (comme Kubernetes)Non (via Docker Compose)
CompatibilitéCommandes similaires à DockerStandard de fait

⚙️ Installation de Podman

  • Debian/Ubuntu : apt install podman
  • RHEL/CentOS/Fedora : dnf install podman
  • Vérification : podman --version

📦 Commandes Podman

  • Lister les conteneurs : podman ps -a
  • Exécuter un conteneur : podman run -d --name nginx nginx:alpine
  • Arrêter/supprimer : podman stop nginx ; podman rm nginx
  • Images : podman images, podman pull

🧩 Gestion des pods

  • Pod : groupe de conteneurs partageant le même réseau et espace de noms.
  • Création : podman pod create --name web-pod -p 8080:80
  • Ajout de conteneurs : podman run -d --pod web-pod nginx:alpine
  • Lister les pods : podman pod ls

💾 Volumes et réseaux

  • Volume : podman volume create data
  • Monter un volume : podman run -v data:/data nginx
  • Réseau : podman network create app-net

📄 Quadlet (Podman + systemd)

  • Principe : utiliser des fichiers .container, .pod, .volume pour définir des unités systemd.
  • Emplacement : /etc/containers/systemd/
  • Exemple : créer un fichier nginx.container.

🛠️ Mise en pratique

8.1 – Exécuter un conteneur Nginx

Lancer un conteneur Nginx avec Podman :

podman run -d --name web -p 8080:80 nginx:alpine
  • podman run : lance un conteneur.
  • -d : détaché.
  • --name web : nom du conteneur.
  • -p 8080:80 : redirection de ports.

8.2 – Créer un pod avec deux conteneurs

Créer un pod avec Nginx et un serveur de fichiers :

podman pod create --name web-pod -p 8080:80
podman run -d --pod web-pod nginx:alpine
podman run -d --pod web-pod alpine httpd -f -h /www
  • podman pod create : crée le pod.
  • --pod web-pod : ajoute le conteneur au pod.
  • Les conteneurs partagent le même réseau.

📝 Exercices d'application

Exercice 1 – Commandes Podman

Quelle commande liste les conteneurs en cours d'exécution avec Podman ?

podman ps

Exercice 2 – Pod

Quelle commande permet de créer un pod ?

podman pod create --name nom-pod

🎯 Quiz d'auto‑évaluation

1. Podman fonctionne sans :

2. Un pod Podman est :

3. Podman est compatible avec les commandes :

4. Quadlet est un outil pour intégrer Podman avec :

5. La commande podman pod ls permet de :

📚 Ressources et liens utiles