# Podman : le moteur de conteneur sans Daemon

Ces dernières années, la [virtualisation](https://www.ionos.fr/digitalguide/serveur/configuration/la-virtualisation/ "La virtualisation") de conteneurs a gagné en importance. Cette technologie, qui doit notamment sa popularité au logiciel Docker paru en 2013, est aujourd’hui devenue une composante fondamentale de divers outils pour le **contrôle des namespaces (fr. « espaces de nom ») virtuels**. Podman est l’une des solutions les plus intéressantes : initialement conçu comme un outil de débogage pour [CRI-O](https://www.ionos.fr/digitalguide/serveur/know-how/cri-o-quest-ce-que-cest/ "CRI-O, qu’est-ce que c’est&nbsp;?") devant simplifier le travail avec les clusters Kubernetes, ce logiciel est rapidement devenu un moteur complet et indépendant pour la **gestion de conteneurs**.

Note Les namespaces permettent de regrouper une sélection d’éléments d’un code (par ex. des classes) dans un conteneur.

Dans la suite de cet article, vous découvrirez ce qui fait la particularité de Podman et comment cet outil de conteneurs peut être utilisé pour répondre à vos besoins.

## Qu’est-ce que Podman ?

Podman (abréviation de « Pod Manager ») est un moteur de conteneur publié pour la première fois en février 2018. Le développeur est la société de logiciels américaine **Red Hat** qui est principalement connue pour ses solutions d’entreprise performantes pour les projets open source les plus divers comme Red Hat Enterprise Linux (RHEL) ou [OpenStack](https://www.ionos.fr/digitalguide/serveur/outils/quest-openstack/ "Qu’est OpenStack&nbsp;?"). Basé sur les expériences de [Docker](https://www.ionos.fr/digitalguide/serveur/know-how/docker-lecosysteme-de-la-plateforme-de-conteneurs/ "Docker : l’écosystème de la plateforme de conteneurs"), Podman n’a pas été conçu initialement comme un moteur indépendant mais comme un outil de débogage simple pour CRI-O, un plan qui a rapidement été abandonné.

Ce logiciel de conteneurs ressemble à Docker par de nombreux points et utilise par exemple le même interpréteur de ligne de commande que le leader du secteur. De ce fait, il est également possible d’**utiliser les principales commandes de Docker dans Podman**. Pour cela, il suffit d’utiliser l’alias *alias docker=podman*. En général, passer de Docker à Podman est donc relativement simple. La nouveauté majeure apportée par Podman est l’**abandon d’un Daemon central** comme instance de gestion pour les conteneurs individuels. Ceci permet d’accéder aux différentes applications virtualisées **sans droits root**.

Note Dans les systèmes d’exploitation Unix/Linux, on entend par Daemon un programme exécuté en arrière-plan et mettant à disposition certains services et processus.

Podman fonctionne **sur toutes les distributions Linux courantes** comme Ubuntu, Fedora, CentOS, Debian et RHEL ainsi que sur Raspbian (système d’exploitation pour les Raspberry Pi). Dans ce cadre, le moteur peut généralement être installé directement via la gestion de paquet du système concerné.

Conseil Dans notre Digital Guide, vous trouverez plus d’informations sur « [Podman vs. Docker : quel futur pour le monde des conteneurs ?](https://www.ionos.fr/digitalguide/serveur/know-how/podman-vs-docker/ "Podman vs. Docker") ».

## Structure et fonctionnement de Podman

En plus de renoncer à un Daemon central, Podman se distingue également par ses **pods**. Inspirés du concept de pods de Kubernetes, les pods sont un regroupement de plusieurs conteneurs au sein d’un namespace Linux commun et partageant certaines **ressources**. Ceci permet de combiner les applications virtualisées les plus diverses de façon flexible.

Comme indiqué précédemment, Podman permet d’**exécuter** les différents conteneurs sur l’hôte en tant qu’**utilisateur habituel, c’est-à-dire sans droits root**. Les processus nécessitent uniquement des droits root au sein d’un conteneur. Pour y parvenir, Podman a recours aux namespaces utilisateur du noyau Linux qui attribuent aux processus des droits spécifiques et des identifiants d’utilisateur. Comme les conteneurs sont exécutés en tant qu’administrateur, l’environnement virtualisé de Podman offre un haut degré de sécurité.

Le noyau d’un pod est formé par des **infraconteneurs** responsables exclusivement de la fonctionnalité du groupe et ayant pour fonction de gérer et de garantir les différentes ressources comme les namespaces, les ports réseau, le processeur, la mémoire vive, etc. Pour la gestion des pods, Podman utilise par ailleurs l’**outil de monitoring** codé en C [Conmon](https://github.com/containers/conmon "Projet Conmon sur GitHub") qui surveille les différents composants virtualisés et sécurise par exemple les journaux. Cet outil sert également d’interface avec le terminal du conteneur concerné. Pour **la durée des conteneurs**, Podman utilise le logiciel [runC](https://github.com/opencontainers/runc "Répertoire GitHub de runC") qui intervient également dans de nombreuses autres solutions comme Docker ou rkt.

[![Image: Schéma : structure schématique d’un pod](https://www.ionos.fr/digitalguide/fileadmin/_processed_/5/0/csm_structure-schematique-un-pod_ac932ab694.webp "Schéma : structure schématique d’un pod")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Schaubilder/structure-schematique-un-pod.png) Schéma : structure schématique d’un pod ## Tutoriel Podman : premiers pas avec Podman

Après vous avoir présenté les principales caractéristiques de Podman, nous résumons pour vous dans le tutoriel Podman suivant les principaux points à observer dans vos débuts avec **ce moteur de conteneur**.

### Installer Podman sous Linux

Podman est un logiciel permettant l’**exécution de conteneurs Linux**. Sur les distributions Linux telles que CentOS, Ubuntu, Debian, etc., cet outil est facile et rapide à installer : dans la plupart des cas, les paquets d’installation sont disponibles directement dans la gestion des paquets du système d’exploitation concerné et peuvent être installés avec les habituelles commandes du terminal du système.

Note Le [projet Kubic sur opensuse.org](https://build.opensuse.org/project/show/devel:kubic:libcontainers:stable "opensuse.org: projet Kubic") met à disposition différents **paquets d’installation de Podman** pour diverses distributions et versions afin de servir d’alternatives aux paquets natifs dans le répertoire système.

**Debian, Ubuntu, Raspbian** :

```none
sudo apt-get update -qq
sudo apt-get -qq -y install podman
```

**Fedora, CentOS, Amazon Linux 2, RHEL 7** :

```none
sudo yum -y install podman
```

**OpenSUSE** :

```none
sudo zipper install podman
```

### Installer Podman sous Windows et macOS

Podman fonctionne parfaitement dans les environnements Linux. Cependant, vous pouvez également utiliser ce moteur de conteneur sur les appareils utilisant les systèmes d’exploitation Windows ou macOS. Pour ce faire, vous devez disposer depuis ces appareils d’un **accès à une installation de Linux** qui fonctionne **au sein d’une machine virtuelle sur l’hôte** ou **accessible via le réseau**.

Si vous disposez d’un tel accès, il vous suffira d’un client distant Podman pour établir une connexion SSH avec le backend de Podman.

Note Les informations de connexion pour la connexion SSH doivent être renseignées dans le fichier de configuration *podman-remote.conf*. Le [tutoriel sur le client distant de Podman sur GitHub](https://github.com/containers/libpod/blob/master/docs/tutorials/remote_client.md "GitHub-Tutorial: «&nbsp;Podman remote-client&nbsp;»") vous fournit des informations détaillées sur **l’installation et l’utilisation**.

### Fonctionnement de la gestion d’image de conteneur avec Podman

Du point de vue des fonctionnalités et de la syntaxe, Podman se base principalement sur Docker. Par conséquent, lors de la **mise en place des conteneurs souhaités**, vous pouvez utiliser le vaste stock d’images Docker prêtes à l’emploi également connu sous le nom de [Docker Hub](https://hub.docker.com/ "Page du site Docker Hub"). À l’aide de la **commande *pull***, vous pouvez télécharger n’importe quelle image d’application, par ex. la **dernière version d’Ubuntu** :

```none
podman pull hub.docker.com/_/ubuntu:latest
```

Le chemin d’accès officiel des différentes images est le chemin local */.local/share/containers/*. Chaque utilisateur dispose de son propre namespace de sorte que la configuration de votre propre conteneur est séparée de la configuration root. Vous pouvez obtenir un **aperçu des images enregistrées localement** avec la commande suivante :

```none
podman images
```

Pour obtenir une **liste des images root**, il suffit d’antéposer la commande « sudo » habituellement utilisée sous Linux :

```none
sudo podman images
```


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/outils/tutoriel-podman/](https://www.ionos.fr/digitalguide/serveur/outils/tutoriel-podman/) for AI/LLM consumption.