Guide technique pour développeurs et architectes système - Édition 2025
Podman est le moteur de conteneurs privilégié de l'écosystème Fedora, remplaçant Docker par une architecture plus sécurisée et moderne. Les sources indiquent une intégration profonde allant des versions 32beta aux versions modernes (42+).
Contrairement à Docker qui utilise un démon central (dockerd), Podman adopte une architecture décentralisée. C'est le cœur de sa proposition de valeur.
| Caractéristique | Docker (Daemon) | Podman (Daemonless) |
|---|---|---|
| Point de défaillance | Unique (Si le daemon crash, tout tombe) | Aucun (Processus indépendants) |
| Privilèges | Root par défaut (souvent) | Rootless par défaut (Sécurité++) |
| Supervision | Interne au Daemon | Via systemd (natif Linux) |
| Ressources (Idle) | Consomme de la RAM en permanence | Zéro (Lancement à la demande) |
Chaque conteneur est un processus enfant de la commande CLI. Cela signifie que :
Bien que souvent pré-installé sur Fedora Server, voici les procédures pour garantir un environnement complet avec l'interface de gestion Cockpit.
Cockpit est l'interface web. Le module cockpit-podman est crucial pour voir l'onglet "Containers".
La sécurité est l'ADN de Fedora. Podman s'appuie sur trois piliers : le mode Rootless, les User Namespaces et SELinux.
Podman mappe l'utilisateur root (UID 0) à l'intérieur du conteneur vers votre UID utilisateur (ex: 1000) sur l'hôte.
Résultat : Si un attaquant sort du conteneur ("container breakout"), il se retrouve avec des droits limités sur le serveur, empêchant la compromission totale.
SELinux bloque souvent l'accès aux volumes montés (erreur "Permission Denied").
:Z (privé) ou :z (partagé) à la fin de vos montages de volume pour que Podman gère le contexte SELinux automatiquement.-v /home/data:/var/www/html:ZPodman n'est pas juste un remplaçant de Docker, c'est une passerelle vers Kubernetes (K8s).
Vous avez créé un Pod ou un conteneur qui fonctionne parfaitement en local ? Exportez-le pour K8s.
À l'inverse, vous pouvez prendre un YAML Kubernetes et le jouer localement avec Podman sans avoir besoin d'installer Minikube ou un cluster lourd.
Pour les pipelines CI/CD, Podman s'associe à Buildah. Il permet de construire des images OCI sans aucun démon et sans privilèges root, ce qui est idéal pour les runners GitLab CI ou Jenkins sécurisés.
Mise en pratique : déployons un serveur web via l'interface graphique Cockpit.
https://IP_SERVEUR:9090.mon-site-webdocker.io/library/nginx:latest8080 -> Conteneur 80/home/user/site vers /usr/share/nginx/html (Mode: Shared/Z).Si SELinux bloque l'accès à votre page HTML personnalisée, allez dans l'onglet SELinux de Cockpit. Vous verrez une alerte. Cliquez sur "Troubleshoot" et appliquez la commande suggérée (souvent restorecon ou un ajustement de contexte).