Vous voulez lancer un service de test, un outil web ou une image Linux sans ajouter votre compte au groupe docker. Podman sait exécuter des conteneurs depuis une session utilisateur, avec un stockage et des processus rattachés à votre UID. C’est pratique pour démarrer proprement, mais ça ne dispense pas de contrôler l’image, les volumes ni les ports publiés.

Installer Podman et vérifier le mode rootless
Sur Debian ou Ubuntu, installez le paquet depuis les dépôts de votre distribution. Fedora l’inclut aussi dans ses dépôts standards.
sudo apt update
sudo apt install podman
podman --version
podman info --debug
Lancez ensuite podman info --debug avec votre compte habituel, sans sudo. La sortie doit indiquer un contexte rootless. Podman utilise alors votre espace utilisateur et les plages définies dans /etc/subuid et /etc/subgid pour mapper les identifiants du conteneur.
Un message sur newuidmap, subuid ou subgid signale une préparation incomplète. Ne contournez pas l’erreur en basculant directement en root. Vérifiez d’abord votre entrée avec la commande suivante, puis appliquez la méthode documentée par votre distribution si elle manque.
grep "^$USER:" /etc/subuid /etc/subgid
Lancer un premier conteneur sans privilèges
Commencez par une image minuscule et une commande qui s’arrête seule. Vous vérifiez ainsi le téléchargement de l’image, le stockage local et l’exécution sans laisser un service ouvert sur le réseau.
podman run --rm docker.io/library/alpine:latest echo "Podman fonctionne"
L’option --rm supprime le conteneur à sa sortie. L’image reste en cache. Pour voir les images et les conteneurs, y compris ceux qui sont arrêtés, utilisez :
podman images
podman ps -a
Pour un service qui doit rester disponible, donnez-lui un nom explicite. Cet exemple démarre nginx en arrière-plan et publie le port 8080 seulement sur la machine locale.
podman run -d --name web-test \
-p 127.0.0.1:8080:80 \
docker.io/library/nginx:alpine
podman ps
curl -I http://127.0.0.1:8080
Le préfixe 127.0.0.1: évite d’exposer ce test sur toutes les interfaces réseau. Si vous écrivez seulement -p 8080:80, vérifiez le résultat avec podman port web-test et avec ss -ltnp. Sur un serveur, ouvrez un port public uniquement après avoir choisi le pare-feu et l’adresse d’écoute.
Lire l’état, les journaux et arrêter proprement le service
Un conteneur démarré ne prouve pas que l’application répond. Contrôlez son état, les derniers journaux et son mapping réseau avant de modifier l’image ou la configuration.
podman inspect web-test --format '{{.State.Status}}'
podman logs --tail 50 web-test
podman port web-test
podman stop web-test
podman rm web-test
podman inspect affiche les paramètres réellement appliqués. C’est plus fiable que de relire une commande copiée dans votre historique. Gardez aussi le nom de l’image et son tag dans votre documentation. Un tag latest peut pointer vers une version différente lors du prochain téléchargement. Pour un usage durable, choisissez une version précise et planifiez sa mise à jour.
Les limites du rootless et les pièges à éviter
- Un conteneur rootless limite l’impact sur l’hôte, mais une image non fiable, un secret injecté en variable ou un volume en écriture restent des risques.
- Évitez
--privileged,--network hostet les montages de répertoires sensibles. Ces options réduisent fortement l’isolation. - Montez les données en lecture seule quand l’application n’a pas à les modifier, par exemple
-v "$HOME/site:/usr/share/nginx/html:ro". - Les ports inférieurs à 1024, certains périphériques et quelques contraintes réseau demandent une configuration supplémentaire. N’ajoutez pas de privilèges par réflexe.
- Podman accepte une grande partie de la syntaxe Docker, mais les services, les réseaux et le stockage ne se comportent pas toujours de la même manière. Testez un projet dans un dossier isolé avant une migration.
Le groupe docker donne souvent un accès très large au démon Docker. Podman rootless évite cette habitude pour les conteneurs lancés depuis votre compte. Pour comparer l’installation d’un moteur Docker avec ce choix de droits, vous pouvez aussi relire notre guide sur Docker sur Debian.
La documentation officielle de Podman détaille le fonctionnement rootless, et le manuel de podman run liste les options réseau, volumes et identifiants. Commencez avec une image simple, un port local et un volume en lecture seule. Vous saurez rapidement si Podman convient à votre usage avant de déplacer un service utile.