
Ce guide vous permet d’installer Podman sur votre système en mode rootless (sans droits root). Que vous soyez sur Linux, macOS ou Windows, vous aurez un environnement de conteneurs fonctionnel et sécurisé. À la fin, vous saurez :
- Installer Podman sur votre distribution Linux
- Configurer le mode rootless (exécution sans droits root)
- Utiliser Podman Machine sur macOS et Windows
- Vérifier que tout fonctionne avec un conteneur de test
Prérequis
Section intitulée « Prérequis »| Plateforme | Prérequis |
|---|---|
| Linux | Compte utilisateur standard, accès sudo pour l’installation |
| macOS | macOS 13+ (Ventura), Homebrew installé |
| Windows | Windows 10/11, WSL 2 activé ou Hyper-V disponible |
Qu’est-ce que le mode rootless ?
Section intitulée « Qu’est-ce que le mode rootless ? »Avant d’installer, comprenons pourquoi le mode rootless est important.
Par défaut, Podman s’exécute sans droits root (administrateur). Cela signifie que les conteneurs tournent avec les permissions de votre utilisateur standard, pas en tant qu’administrateur système.
Pourquoi c’est mieux ?
| Aspect | Mode root (traditionnel) | Mode rootless (Podman par défaut) |
|---|---|---|
| Sécurité | Un conteneur compromis peut affecter tout le système | Un conteneur compromis n’a que vos droits utilisateur |
| Installation | Nécessite des droits admin | Fonctionne avec un compte standard |
| Partage de machine | Conflits possibles entre utilisateurs | Chaque utilisateur a ses propres conteneurs |
Analogie : C’est comme avoir un coffre-fort personnel dans votre chambre plutôt qu’un seul coffre partagé à la réception de l’hôtel. Si quelqu’un force votre coffre, il n’accède qu’à vos affaires, pas à celles de tout le monde.
Choisir sa méthode d’installation
Section intitulée « Choisir sa méthode d’installation »Avant de vous lancer, identifiez la méthode adaptée à votre situation :
Installation sur Linux
Section intitulée « Installation sur Linux »Fedora et RHEL ont Podman nativement — c’est la meilleure expérience car les versions sont toujours à jour.
-
Installer Podman
Fenêtre de terminal sudo dnf install -y podman -
Vérifier la version
Fenêtre de terminal podman versionSortie attendue (les numéros varient selon la distro) :
Client: Podman EngineVersion: 5.x.xAPI Version: 5.x.xGo Version: go1.22.xOS/Arch: linux/amd64 -
Tester avec un conteneur
Fenêtre de terminal podman run --rm alpine echo "Hello Podman!"Sortie attendue :
Hello Podman!
Sur Ubuntu et Debian, vous avez deux options selon vos besoins.
Option 1 : Dépôts natifs (simple, version potentiellement ancienne)
sudo apt updatesudo apt install -y podmanpodman --version # Vérifiez la version obtenueOption 2 : Dépôt OBS libcontainers (Podman 5.x)
Utilisez le générateur de commandes OBS pour obtenir les commandes exactes selon votre version Ubuntu/Debian.
-
Ajouter le dépôt OBS (exemple Ubuntu 24.04)
Fenêtre de terminal # Installer les prérequissudo apt updatesudo apt install -y curl gpg# Ajouter la clé GPG du projetcurl -fsSL https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_$(lsb_release -rs)/Release.key \| sudo gpg --dearmor -o /etc/apt/keyrings/devel_kubic_libcontainers.gpg# Ajouter le dépôtecho "deb [signed-by=/etc/apt/keyrings/devel_kubic_libcontainers.gpg] \https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_$(lsb_release -rs)/ /" \| sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list -
Installer Podman
Fenêtre de terminal sudo apt updatesudo apt install -y podman -
Vérifier la version
Fenêtre de terminal podman versionVous devez obtenir une version 5.x.
-
Tester avec un conteneur
Fenêtre de terminal podman run --rm docker.io/library/alpine echo "Hello Podman!"
Arch Linux propose toujours les dernières versions dans ses dépôts officiels.
-
Installer Podman
Fenêtre de terminal sudo pacman -S podman -
Installer les outils complémentaires (optionnel mais recommandé)
Fenêtre de terminal sudo pacman -S buildah skopeo podman-compose -
Vérifier l’installation
Fenêtre de terminal podman versionpodman run --rm alpine echo "Hello Podman!"
openSUSE, comme Fedora, est une distribution proche de Red Hat avec un excellent support Podman.
-
Installer Podman
Fenêtre de terminal sudo zypper install podman -
Vérifier l’installation
Fenêtre de terminal podman version -
Tester
Fenêtre de terminal podman run --rm alpine echo "Hello Podman!"
Configuration du mode rootless sur Linux
Section intitulée « Configuration du mode rootless sur Linux »Après l’installation, vous devez configurer le mode rootless pour profiter de la sécurité maximale.
Vérifier la configuration subuid/subgid
Section intitulée « Vérifier la configuration subuid/subgid »Le mode rootless utilise les user namespaces de Linux. Pour que ça fonctionne, votre utilisateur doit avoir des plages d’UID/GID allouées.
-
Vérifier que les fichiers existent et contiennent votre utilisateur
Fenêtre de terminal grep $USER /etc/subuid /etc/subgidSortie attendue (avec votre nom d’utilisateur) :
/etc/subuid:bob:100000:65536/etc/subgid:bob:100000:65536Cela signifie que l’utilisateur
bobpeut utiliser 65536 UIDs à partir de 100000. -
Si les lignes n’existent pas, ajoutez-les :
Fenêtre de terminal sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER -
Initialiser le namespace utilisateur
Fenêtre de terminal podman system migrate
Vérifier que le mode rootless est actif
Section intitulée « Vérifier que le mode rootless est actif »podman info --format '{{.Host.Security.Rootless}}'Sortie attendue :
trueOù sont stockées les images en rootless ?
Section intitulée « Où sont stockées les images en rootless ? »Contrairement à Docker qui stocke tout dans /var/lib/docker/ (accessible uniquement par root), Podman rootless utilise votre dossier personnel :
podman info --format '{{.Store.GraphRoot}}'Sortie :
/home/bob/.local/share/containers/storageCela signifie que chaque utilisateur a son propre espace de stockage d’images, totalement isolé.
Installation sur macOS
Section intitulée « Installation sur macOS »macOS ne peut pas exécuter de conteneurs Linux nativement (le noyau est différent). Podman utilise donc une machine virtuelle Linux légère appelée Podman Machine.
Installer Podman via Homebrew
Section intitulée « Installer Podman via Homebrew »-
Installer Homebrew si ce n’est pas déjà fait
Fenêtre de terminal /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Installer Podman
Fenêtre de terminal brew install podman -
Créer et démarrer la machine virtuelle
Fenêtre de terminal podman machine initpodman machine startLa première exécution télécharge une image Linux (~300 Mo) et crée la VM.
-
Vérifier que tout fonctionne
Fenêtre de terminal podman versionpodman run --rm alpine echo "Hello Podman on macOS!"
Options de Podman Machine
Section intitulée « Options de Podman Machine »Vous pouvez personnaliser les ressources de la VM lors de la création :
# Machine avec 4 CPUs, 4 Go de RAM, 50 Go de disquepodman machine init --cpus 4 --memory 4096 --disk-size 50
# Démarrerpodman machine startCommandes utiles Podman Machine
Section intitulée « Commandes utiles Podman Machine »| Commande | Description |
|---|---|
podman machine list | Lister les machines |
podman machine start | Démarrer la machine par défaut |
podman machine stop | Arrêter la machine |
podman machine ssh | Se connecter en SSH à la VM |
podman machine rm | Supprimer une machine |
podman machine inspect | Détails de configuration |
Installation sur Windows
Section intitulée « Installation sur Windows »Windows, comme macOS, nécessite une machine virtuelle pour exécuter les conteneurs Linux.
WSL 2 (Windows Subsystem for Linux) offre les meilleures performances.
-
Activer WSL 2 (si pas déjà fait)
Ouvrez PowerShell en tant qu’administrateur :
Fenêtre de terminal wsl --installRedémarrez si demandé.
-
Installer Podman via winget
Fenêtre de terminal winget install RedHat.PodmanOu téléchargez l’installateur MSI depuis github.com/containers/podman/releases.
-
Créer la machine Podman
Ouvrez un terminal (PowerShell ou CMD) :
Fenêtre de terminal podman machine initpodman machine start -
Tester
Fenêtre de terminal podman run --rm alpine echo "Hello Podman on Windows!"
Si vous ne pouvez pas utiliser WSL 2, Hyper-V est une alternative.
-
Activer Hyper-V
Panneau de configuration → Programmes → Activer ou désactiver des fonctionnalités Windows → Hyper-V
Ou via PowerShell (admin) :
Fenêtre de terminal Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -
Installer Podman
Fenêtre de terminal winget install RedHat.Podman -
Créer la machine avec le provider HyperV
Fenêtre de terminal podman machine init --provider hypervpodman machine start
Podman Desktop (interface graphique)
Section intitulée « Podman Desktop (interface graphique) »Si vous préférez une interface graphique, Podman Desktop est disponible sur toutes les plateformes.
Installation
Section intitulée « Installation »| Plateforme | Méthode recommandée | Alternative |
|---|---|---|
| macOS | Télécharger .dmg (recommandé) | brew install --cask podman-desktop |
| Windows | winget install RedHat.Podman-Desktop | Télécharger .exe |
| Linux | Flatpak : flatpak install flathub io.podman_desktop.PodmanDesktop | AppImage disponible |
Fonctionnalités principales
Section intitulée « Fonctionnalités principales »- Gestion visuelle des conteneurs, images, pods
- Gestion des machines Podman (macOS/Windows)
- Intégration avec Kubernetes
- Extensions (Kind, OpenShift, etc.)
Vérification de l’installation (toutes plateformes)
Section intitulée « Vérification de l’installation (toutes plateformes) »Quelle que soit votre plateforme, effectuez ces vérifications :
-
Version installée
Fenêtre de terminal podman versionVérifiez que la version est 5.x ou supérieure.
-
Informations système
Fenêtre de terminal podman infoPoints à vérifier :
host.security.rootless: true(Linux)store.graphDriverName: overlayhost.ociRuntime.name: crunourunc
-
Test d’exécution
Fenêtre de terminal podman run --rm docker.io/library/alpine:latest cat /etc/os-releaseSortie attendue :
NAME="Alpine Linux"ID=alpineVERSION_ID=3.19.1... -
Test de pull depuis plusieurs registres
Fenêtre de terminal # Docker Hubpodman pull docker.io/library/nginx:alpine# Quay.io (Red Hat)podman pull quay.io/podman/hello# GitHub Container Registrypodman pull ghcr.io/homebrew/core/hello:latest
Dépannage
Section intitulée « Dépannage »Erreurs courantes et solutions
Section intitulée « Erreurs courantes et solutions »| Symptôme | Cause probable | Solution |
|---|---|---|
ERRO[0000] cannot find UID/GID | subuid/subgid non configurés | sudo usermod --add-subuids 100000-165535 $USER |
Error: rootless mode | Namespace utilisateur non initialisé | podman system migrate |
machine not running (macOS/Windows) | Machine Podman arrêtée | podman machine start |
Error: dial unix | Socket Podman inaccessible | Vérifier que le service fonctionne |
permission denied sur les fichiers | Problème de mapping UID | Utiliser :U ou --userns=keep-id |
Permissions volumes : 2 recettes
Section intitulée « Permissions volumes : 2 recettes »En mode rootless, les problèmes de permissions sur les volumes montés sont fréquents car les UIDs dans le conteneur ne correspondent pas à ceux du système hôte.
Recette 1 : --userns=keep-id (aligner les UIDs)
Cette option fait correspondre votre UID réel avec l’UID dans le conteneur :
podman run --rm --userns=keep-id -v ./data:/data:rw alpine ls -la /data→ Votre utilisateur (ex: UID 1000) sera aussi UID 1000 dans le conteneur.
Recette 2 : suffixe :U (chown automatique)
Le suffixe :U sur un volume indique à Podman de changer récursivement le propriétaire des fichiers pour correspondre à l’UID du conteneur :
podman run --rm -v ./data:/data:U alpine ls -la /dataRedémarrer proprement
Section intitulée « Redémarrer proprement »Si quelque chose ne fonctionne pas :
# Linuxpodman system reset
# macOS/Windowspodman machine stoppodman machine rmpodman machine initpodman machine startChecklist post-installation
Section intitulée « Checklist post-installation »Après installation, vérifiez que tout fonctionne avec cette checklist :
| Vérification | Commande | Résultat attendu |
|---|---|---|
| Version | podman version | Version 5.x affichée |
| Runtime | podman info --format '{{.Host.OCIRuntime.Name}}' | crun ou runc |
| Storage driver | podman info --format '{{.Store.GraphDriverName}}' | overlay |
| Rootless (Linux) | podman info --format '{{.Host.Security.Rootless}}' | true |
| Test conteneur | podman run --rm docker.io/library/alpine echo ok | ok |
| Machine (macOS/Win) | podman machine list | Une machine running |
| SSH machine | podman machine ssh uname -a | Infos Linux affichées |
À retenir
Section intitulée « À retenir »- Podman est rootless par défaut — plus sécurisé, chaque utilisateur a ses propres conteneurs
- Linux : installation native, configurer
/etc/subuidet/etc/subgidpour le mode rootless - macOS/Windows : utiliser Podman Machine qui crée une VM Linux légère
- Ubuntu/Debian : les dépôts natifs peuvent être en retard — utilisez OBS libcontainers pour la v5.x
- Vérifier avec
podman infoque le mode rootless est actif et le runtime correct - Problèmes de permissions : utiliser
--userns=keep-idou le suffixe:U