Podman

Podman est un moteur de conteneurs open-source conçu pour exécuter, gérer et déployer des conteneurs sans nécessiter de daemon en arrière-plan. Contrairement à Docker, Podman ne fonctionne pas en tant que service root unique et permet l'exécution de conteneurs sans privilèges root, améliorant ainsi la sécurité.

Podman

Introduction Ă  Podman

Podman est un moteur de conteneurs open-source conçu pour exécuter, gérer et déployer des conteneurs sans nécessiter de daemon en arrière-plan. Contrairement à Docker, Podman ne fonctionne pas en tant que service root unique et permet l'exécution de conteneurs sans privilèges root, améliorant ainsi la sécurité.

Pourquoi utiliser Podman ?

  • Sans daemon : Contrairement Ă  Docker, Podman n'a pas besoin d'un dĂ©mon en arrière-plan.
  • Mode rootless : Il permet d'exĂ©cuter des conteneurs sans privilèges administratifs.
  • CompatibilitĂ© avec Docker : Il utilise les mĂŞmes images et commandes CLI que Docker.
  • Meilleure intĂ©gration avec systemd : Il facilite le dĂ©ploiement et la gestion des conteneurs avec systemd.
  • SĂ©curitĂ© accrue : Moins de surface d'attaque due Ă  l'absence de daemon.

Installation de Podman

Sur Linux

Podman est disponible dans les dépôts officiels de nombreuses distributions :

Ubuntu/Debian

sudo apt update sudo apt install -y podman

Fedora

sudo dnf install -y podman

Arch Linux

sudo pacman -S podman

CentOS/RHEL

sudo yum install -y podman

Sur macOS

Podman est disponible via Homebrew :

brew install podman

Sur Windows

Podman peut être installé via Chocolatey ou un exécutable.

choco install podman

Commandes de base

Vérification de l'installation

podman --version

Tirer une image

podman pull nginx

Lister les images

podman images

Exécuter un conteneur

podman run -d --name mon-nginx -p 8080:80 nginx

Lister les conteneurs

podman ps

ArrĂŞter et supprimer un conteneur

podman stop mon-nginx podman rm mon-nginx

Supprimer une image

podman rmi nginx

Gestion avancée

Exécution rootless

Podman permet d’exécuter des conteneurs en mode rootless (sans droits administrateurs) :

podman run -it --rm alpine sh

Création et gestion de pods

Podman permet de regrouper plusieurs conteneurs dans un pod, simulant ainsi Kubernetes :

podman pod create --name mon-pod -p 8080:80 podman run -dt --pod mon-pod nginx

Volumes et persistance des données

Créer un volume nommé :

podman volume create mon-volume

Exécuter un conteneur en utilisant un volume :

podman run -d -v mon-volume:/data --name mon-conteneur nginx

Utilisation avec systemd

Podman facilite l'intégration avec systemd pour exécuter des conteneurs en tant que services :

podman generate systemd --name mon-nginx > /etc/systemd/system/mon-nginx.service systemctl enable --now mon-nginx

Comparaison avec Docker

FonctionnalitéDockerPodman
DaemonOuiNon
RootlessExpérimentalOui
Commandes identiquesOuiOui
Compatibilité OCIOuiOui
Pods intégrésNonOui

En résumé

Podman est une alternative puissante et sécurisée à Docker, particulièrement adaptée aux environnements nécessitant une meilleure gestion des permissions et une intégration avec systemd. Grâce à sa compatibilité avec les commandes Docker, il offre une transition facile pour les utilisateurs souhaitant adopter une approche plus sécurisée et modulaire de la gestion des conteneurs.