Installation et utilisation de Podman pour la conteneurisation sans daemon ni root.
Composant
Version
Rocky Linux
9.x
Podman
4.x
Durée estimée : 30 minutes
Pourquoi Podman ?
Critère
Podman
Docker
Daemon
Non
Oui (dockerd)
Root requis
Non (rootless)
Oui par défaut
Compatibilité
CLI Docker
-
Systemd
Natif
Add-on
Pods
Natif (K8s style)
Non
Sécurité
SELinux intégré
Limité
1. Installation
# Podman est inclus dans Rocky 9dnfinstall-ypodmanpodman-docker
# Vérifierpodman--version
podmaninfo
Alias Docker (optionnel)
# podman-docker crée l'alias automatiquementdocker--version# Affiche podman# Ou manuellementecho'alias docker=podman'>>~/.bashrc
2. Mode Rootless (recommandé)
Configurer l'utilisateur
# Vérifier les subuid/subgidgrep$USER/etc/subuid
grep$USER/etc/subgid
# Si absent, ajouterecho"$USER:100000:65536"|sudotee-a/etc/subuid
echo"$USER:100000:65536"|sudotee-a/etc/subgid
Utilisation rootless
# En tant qu'utilisateur normal (pas root)podmanrunhello-world
podmanps-a
3. Commandes de base
Images
# Rechercher une imagepodmansearchnginx
# Téléchargerpodmanpulldocker.io/nginx:alpine
podmanpullquay.io/podman/hello
# Lister les imagespodmanimages
# Supprimerpodmanrminginx:alpine
# Créer un podpodmanpodcreate--namemypod-p8080:80
# Ajouter des conteneurs au podpodmanrun-d--podmypod--namewebnginx:alpine
podmanrun-d--podmypod--nameappmyapp:latest
# Les conteneurs partagent le réseau# localhost:80 dans app atteint nginx# Lister les podspodmanpodls
# Inspecterpodmanpodinspectmypod
# Arrêter/Démarrerpodmanpodstopmypod
podmanpodstartmypod
# Supprimerpodmanpodrmmypod
# Lancer un registry localpodmanrun-d--nameregistry\-p5000:5000\-vregistry-data:/var/lib/registry\registry:2
# Pousser vers le registry localpodmantagmyapp:1.0localhost:5000/myapp:1.0
podmanpushlocalhost:5000/myapp:1.0--tls-verify=false
9. Systemd integration
Générer un service systemd
# Créer et démarrer le conteneurpodmanrun-d--nameweb-p8080:80nginx:alpine
# Générer le fichier servicepodmangeneratesystemd--new--nameweb>~/.config/systemd/user/container-web.service
# Activersystemctl--userdaemon-reload
systemctl--userenable--nowcontainer-web
# Vérifiersystemctl--userstatuscontainer-web
Pour un pod
podmangeneratesystemd--new--namemypod--files
# Génère plusieurs fichiers .service
Linger (rootless persistant)
# Permettre aux services utilisateur de tourner sans sessionsudologinctlenable-linger$USER