Ces dernières années, la vir­tua­li­sa­tion de con­te­neurs a gagné en im­por­tance. Cette tech­no­lo­gie, qui doit notamment sa po­pu­la­rité au logiciel Docker paru en 2013, est aujourd’hui devenue une com­po­sante fon­da­men­tale de divers outils pour le contrôle des na­mes­paces (fr. « espaces de nom ») virtuels. Podman est l’une des solutions les plus in­té­res­santes : ini­tia­le­ment conçu comme un outil de débogage pour CRI-O devant sim­pli­fier le travail avec les clusters Ku­ber­netes, ce logiciel est ra­pi­de­ment devenu un moteur complet et in­dé­pen­dant pour la gestion de con­te­neurs.

Note

Les na­mes­paces per­met­tent 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é­cou­vri­rez ce qui fait la par­ti­cu­la­rité de Podman et comment cet outil de con­te­neurs peut être utilisé pour répondre à vos besoins.

Qu’est-ce que Podman ?

Podman (abré­via­tion de « Pod Manager ») est un moteur de conteneur publié pour la première fois en février 2018. Le dé­ve­lop­peur est la société de logiciels amé­ri­caine Red Hat qui est prin­ci­pa­le­ment connue pour ses solutions d’en­tre­prise per­for­mantes pour les projets open source les plus divers comme Red Hat En­ter­prise Linux (RHEL) ou OpenStack. Basé sur les ex­pé­riences de Docker, Podman n’a pas été conçu ini­tia­le­ment comme un moteur in­dé­pen­dant mais comme un outil de débogage simple pour CRI-O, un plan qui a ra­pi­de­ment été abandonné.

Ce logiciel de con­te­neurs ressemble à Docker par de nombreux points et utilise par exemple le même in­ter­pré­teur de ligne de commande que le leader du secteur. De ce fait, il est également possible d’utiliser les prin­ci­pales 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 re­la­ti­ve­ment simple. La nouveauté majeure apportée par Podman est l’abandon d’un Daemon central comme instance de gestion pour les con­te­neurs in­di­vi­duels. Ceci permet d’accéder aux dif­fé­rentes ap­pli­ca­tions vir­tua­li­sées sans droits root.

Note

Dans les systèmes d’ex­ploi­ta­tion Unix/Linux, on entend par Daemon un programme exécuté en arrière-plan et mettant à dis­po­si­tion certains services et processus.

Podman fonc­tionne sur toutes les dis­tri­bu­tions Linux courantes comme Ubuntu, Fedora, CentOS, Debian et RHEL ainsi que sur Raspbian (système d’ex­ploi­ta­tion pour les Raspberry Pi). Dans ce cadre, le moteur peut gé­né­ra­le­ment être installé di­rec­te­ment via la gestion de paquet du système concerné.

Conseil

Dans notre Digital Guide, vous trouverez plus d'in­for­ma­tions sur « Podman vs. Docker : quel futur pour le monde des con­te­neurs ? ».

Structure et fonc­tion­ne­ment de Podman

En plus de renoncer à un Daemon central, Podman se distingue également par ses pods. Inspirés du concept de pods de Ku­ber­netes, les pods sont un re­grou­pe­ment de plusieurs con­te­neurs au sein d’un namespace Linux commun et par­ta­geant certaines res­sources. Ceci permet de combiner les ap­pli­ca­tions vir­tua­li­sées les plus diverses de façon flexible.

Comme indiqué pré­cé­dem­ment, Podman permet d’exécuter les dif­fé­rents con­te­neurs sur l’hôte en tant qu’uti­li­sa­teur habituel, c’est-à-dire sans droits root. Les processus né­ces­si­tent uni­que­ment des droits root au sein d’un conteneur. Pour y parvenir, Podman a recours aux na­mes­paces uti­li­sa­teur du noyau Linux qui at­tri­buent aux processus des droits spé­ci­fiques et des iden­ti­fiants d’uti­li­sa­teur. Comme les con­te­neurs sont exécutés en tant qu’ad­mi­nis­tra­teur, l’en­vi­ron­ne­ment vir­tua­lisé de Podman offre un haut degré de sécurité.

Le noyau d’un pod est formé par des in­fra­con­te­neurs res­pon­sables ex­clu­si­ve­ment de la fonc­tion­na­lité du groupe et ayant pour fonction de gérer et de garantir les dif­fé­rentes res­sources comme les na­mes­paces, les ports réseau, le pro­ces­seur, la mémoire vive, etc. Pour la gestion des pods, Podman utilise par ailleurs l’outil de mo­ni­to­ring codé en C Conmon qui surveille les dif­fé­rents com­po­sants vir­tua­li­sé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 con­te­neurs, Podman utilise le logiciel runC qui in­ter­vient également dans de nom­breuses autres solutions comme Docker ou rkt.

Tutoriel Podman : premiers pas avec Podman

Après vous avoir présenté les prin­ci­pales ca­rac­té­ris­tiques de Podman, nous résumons pour vous dans le tutoriel Podman suivant les prin­ci­paux points à observer dans vos débuts avec ce moteur de conteneur.

Installer Podman sous Linux

Podman est un logiciel per­met­tant l’exécution de con­te­neurs Linux. Sur les dis­tri­bu­tions Linux telles que CentOS, Ubuntu, Debian, etc., cet outil est facile et rapide à installer : dans la plupart des cas, les paquets d’ins­tal­la­tion sont dis­po­nibles di­rec­te­ment dans la gestion des paquets du système d’ex­ploi­ta­tion concerné et peuvent être installés avec les ha­bi­tuelles commandes du terminal du système.

Note

Le projet Kubic sur opensuse.org met à dis­po­si­tion dif­fé­rents paquets d’ins­tal­la­tion de Podman pour diverses dis­tri­bu­tions et versions afin de servir d’al­ter­na­tives aux paquets natifs dans le ré­per­toire système.

Debian, Ubuntu, Raspbian :

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

Fedora, CentOS, Amazon Linux 2, RHEL 7 :

sudo yum -y install podman

OpenSUSE :

sudo zipper install podman

Installer Podman sous Windows et macOS

Podman fonc­tionne par­fai­te­ment dans les en­vi­ron­ne­ments Linux. Cependant, vous pouvez également utiliser ce moteur de conteneur sur les appareils utilisant les systèmes d’ex­ploi­ta­tion Windows ou macOS. Pour ce faire, vous devez disposer depuis ces appareils d’un accès à une ins­tal­la­tion de Linux qui fonc­tionne au sein d’une machine virtuelle sur l’hôte ou ac­ces­sible 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 in­for­ma­tions de connexion pour la connexion SSH doivent être ren­seig­nées dans le fichier de con­fi­gu­ra­tion podman-remote.conf. Le tutoriel sur le client distant de Podman sur GitHub vous fournit des in­for­ma­tions dé­tail­lées sur l’ins­tal­la­tion et l’uti­li­sa­tion.

Fonc­tion­ne­ment de la gestion d’image de conteneur avec Podman

Du point de vue des fonc­tion­na­li­tés et de la syntaxe, Podman se base prin­ci­pa­le­ment sur Docker. Par con­sé­quent, lors de la mise en place des con­te­neurs souhaités, vous pouvez utiliser le vaste stock d’images Docker prêtes à l’emploi également connu sous le nom de Docker Hub. À l’aide de la commande pull, vous pouvez té­lé­char­ger n’importe quelle image d’ap­pli­ca­tion, par ex. la dernière version d’Ubuntu :

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

Le chemin d’accès officiel des dif­fé­rentes images est le chemin local /.local/share/con­tai­ners/. Chaque uti­li­sa­teur dispose de son propre namespace de sorte que la con­fi­gu­ra­tion de votre propre conteneur est séparée de la con­fi­gu­ra­tion root. Vous pouvez obtenir un aperçu des images en­re­gis­trées lo­ca­le­ment avec la commande suivante :

podman images

Pour obtenir une liste des images root, il suffit d’antéposer la commande « sudo » ha­bi­tuel­le­ment utilisée sous Linux :

sudo podman images
Aller au menu principal