Avec la virtualisation, les entreprises sont en mesure d’exécuter plusieurs systèmes d’exploitation et applications simultanément sur un même serveur physique. Les ressources et capacités du serveur sont réparties entre les différentes instances. Mais il arrive très souvent que l'application qu'il fait tourner ne consomme pas l'ensemble des ressources disponibles sur la machine virtuelle. Ainsi est né un nouveau système de virtualisation plus léger : la conteneurisation.
Notons qu'un conteneur est un processus ou un ensemble de processus isolés du reste du système qui regroupe le code et toutes ses dépendances afin que l'application s'exécute rapidement et de manière fiable d'un environnement informatique à l'autre. Il ne crée qu'une isolation des processus et ne virtualise pas les ressources. Il existe un certain nombre d’outils, à l’exemple de Docker et Podman, permettant d’effectuer la conteneurisation ou la virtualisation légère.
Qu’est-ce que Podman ?
Podman est un moteur de conteneur sans "daemon", open source, développé par RedHat et disponible sur GitHub. Il est conçu pour développer, gérer et exécuter des conteneurs et des images de conteneurs OCI (Open Container Initiative) sur les systèmes Linux. Il gère l'ensemble de l'écosystème des conteneurs en utilisant la bibliothèque libpod. Étant donné que Podman ne fonctionne que sur les plateformes Linux, pour permettre aux systèmes Mac et Windows d'appeler le service, une API REST et des clients sont actuellement en cours de développement.
Toutefois, il existe actuellement un client distant basé sur Varlink qui fonctionne sur les plateformes Mac ou Windows et qui permet de communiquer à distance avec un serveur Podman basé sur une plateforme Linux. Voici, ci-dessous, la portée de la bibliothèque libpod et de Podman :
- prise en charge de plusieurs méthodes pour télécharger des images en toute sécurité, y compris la vérification de la confiance et des images ;
- gestion des images de conteneur (gestion des couches d'images, systèmes de fichiers superposés, etc.) ;
- gestion complète du cycle de vie du conteneur ;
- prise en charge des pods pour gérer ensemble des groupes de conteneurs ;
- isolation des ressources des conteneurs et des pods ;
- support de plusieurs formats d'images, y compris les formats d'images OCI et Docker.
- Rappelons qu’un pod c'est tout simplement un groupe de conteneurs qui partagent des informations entre eux.
Le schéma ci-dessous illustre le concept de pod
Présentation de Docker
Docker est un produit développé par la société Docker Inc. Il permet de créer des environnements appelés conteneurs de manière à isoler les applications. Selon la firme de recherche sur l'industrie 451 Research, Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n'importe quel serveur. Comme dans le cas de Podman, il ne s'agit pas de virtualisation au sens propre du terme, mais de conteneurisation, une forme plus légère qui s'appuie sur certaines parties de la machine hôte pour son fonctionnement.
Rappelons qu'une image du conteneur Docker est un ensemble de logiciels légers, autonomes et exécutables qui comprend tout ce qui est nécessaire pour faire fonctionner une application : code, temps d'exécution, outils système, bibliothèques système et paramètres. Les images de conteneurs deviennent des conteneurs au moment de l'exécution. Dans le cas des conteneurs Docker, les images deviennent des conteneurs lorsqu'elles s'exécutent sur le moteur Docker.
Disponibles pour les applications Linux et Windows, les logiciels conteneurisés via le moteur Docker fonctionnent de la même manière, qu’ils soient sur Windows ou sur Linux. Les conteneurs isolent les logiciels de leur environnement et garantissent leur fonctionnement uniforme malgré les différences. Voici, ci-dessous, quelques caractéristiques du moteur Docker :
- standard : Docker a créé la norme industrielle pour les conteneurs, afin qu'ils puissent être transportés partout ;
- léger : les conteneurs partagent le noyau du système d'exploitation de la machine et n'ont donc pas besoin d'un système d'exploitation par application, ce qui augmente l'efficacité des serveurs et réduit les coûts ;
- sécurisé : les applications sont plus sûres dans les conteneurs.
Contrairement à Podman, en plus de fonctionner sur divers systèmes d'exploitation Linux (CentOS, Debian, Fedora, Oracle Linux, RHEL, SUSE et Ubuntu), le moteur Docker fonctionne également sur Windows Serveur. Podman est-il le successeur de Docker ? En attendant d'avoir une réponse à cette question, Dan Walsh, ingénieur chez RedHat, explique comment remplacer Docker par Podman avec deux lignes de code.
Code : | Sélectionner tout |
1 2 | dnf install -y podman alias docker=podman |
Sources : Podman, Docker
Et vous ?
Podman est-il le substitut de Docker ?
Les avantages qu’offre Podman sont-ils suffisants ?
Voir aussi :
Docker a lancé la version bêta publique du plugin pour les déploiements simplifiés sur AWS, pour les services ECS et Fargate
Mirantis acquiert Docker Enterprise et Docker lève 35 millions dollars, mais le service restera une entreprise indépendante, d'après Mirantis
L'extension Docker pour Visual Studio Code passe en version 1.0, elle vient faciliter la création d'applications qui exploitent les conteneurs Docker
51 % des 4 millions d'images Docker analysées présentent des vulnérabilités critiques, et certaines d'entre elles peuvent être considérées comme malveillantes, selon une étude de Prevasio