Raccourcis

Buildah, qu'est-ce que c'est ?

Copier l'URL

Buildah est un outil Open Source basé sur Linux qui permet de créer des conteneurs OCI (Open Container Initiative), donc également compatibles avec Docker et Kubernetes. Avec Buildah, vous pouvez utiliser les outils de votre choix pour créer des images de conteneurs efficaces à partir d'une image de base existante, ou en partant de zéro à partir d'une image vide. Il s'agit d'un moyen plus sûr et plus flexible de créer des images de conteneurs. Lisez la suite de l'article pour en savoir plus sur cet outil.

L'outil Buildah (baptisé d'après le terme anglais « builder » prononcé avec l'accent de Boston) a été créé en 2017 par Daniel Walsh et son équipe chez Red Hat. L'idée était de créer un paquetage « coreutils » d'images de conteneurs, à savoir un outil qui pourrait être utilisé avec les outils d'hôte de conteneurs existants pour créer des images de conteneurs OCI et Docker. Ces images pourraient ensuite être stockées dans des registres de conteneurs et utilisées dans plusieurs environnements d'exécution, en recourant ou non à un démon de conteneurs comme celui de Docker (qui nécessite des privilèges d'accès root, et dont les conteneurs correspondants dépendent, de fait, des caractéristiques du démon lui-même). 

C'est ainsi qu'est né Buildah, un outil en ligne de commande qui :

  • crée des images de conteneurs avec ou sans fichier Docker (document texte qui contient toutes les commandes qu'un utilisateur peut appeler pour assembler une image) 
  • crée des images de conteneurs à partir de zéro ou d'une image de conteneur existante 
  • n'inclut pas d'outils de création au sein de l'image elle-même, ce qui réduit la taille des images créées, renforce la sécurité et facilite le transport tout en utilisant moins de ressources 
  • est compatible avec les fichiers Docker, ce qui facilite la transition à partir de Docker 
  • crée des images propres à l'utilisateur afin que celui qui les a créées puisse les trier

La possibilité de créer des images sans fichiers Docker, d'intégrer d'autres langages de script dans le processus de création, ou encore l'efficacité qu'offre l'utilisation d'outils de création externes à l'image elle-même font de Buildah un outil qui favorise l'innovation et la mise en œuvre de nouvelles idées. Les images de conteneurs peuvent être rapidement créées et utilisées, en s'appuyant uniquement sur les outils et processus indispensables à leur mise en œuvre.

Avec Buildah, vous pouvez également :

  • inspecter, vérifier et modifier des images 
  • transférer des conteneurs et des images d'un système de stockage local vers un registre ou un référentiel public ou privé 
  • ajouter ou retirer des images de Docker Hub 
  • supprimer des images de conteneurs stockées localement 
  • monter et démonter le système de fichiers root d'un conteneur actif 
  • utiliser le contenu mis à jour du système de fichiers root d'un conteneur comme couche de système de fichiers pour une nouvelle image

Buildah et Podman sont deux projets Open Source d'outils en ligne de commande qui se complètent et qui permettent de créer et d'utiliser des images et des conteneurs OCI. Buildah a été créé en premier, et son code a été repris pour créer l'architecture de Podman. Toutefois, les commandes de Buildah sont beaucoup plus élaborées que celles de Podman, et permettent de mieux contrôler les images et de créer des couches d'images plus précises. La commande « build » de Podman repose sur un sous-ensemble des fonctions de Buildah. 

Buildah est spécialisé dans la création d'images de conteneurs et reproduit toutes les commandes que l'on trouve dans un fichier Docker sans le composant socket du démon. De son côté, Podman repose sur les éléments requis pour modifier ces images dans un conteneur et en assurer la maintenance. Avec Podman, vous pouvez créer un conteneur (en passant par Buildah pour obtenir l'image du conteneur), puis l'exécuter, le modifier et en assurer la maintenance au sein d'un environnement de production, à l'aide des commandes d'interface en ligne de commande que vous maîtrisez. Si vous êtes capable d'exécuter une commande dans l'interface en ligne de commande de Docker, vous pouvez exécuter cette même commande dans celle de Podman. 

Podman et Buildah se différencient également sur un autre point. Les conteneurs de Buildah sont principalement créés pour une courte durée, le temps de transférer du contenu vers l'image du conteneur en cours de création. Avec Podman, les utilisateurs créent des conteneurs traditionnels, destinés à être utilisés et à faire l'objet d'une maintenance à plus long terme. Les conteneurs de Buildah servent un objectif à court terme, tandis que ceux de Podman s'utilisent plus longtemps. 

Ce n'est pas tout. Buildah et Podman ne partagent pas de représentations internes des conteneurs, de sorte qu'un conteneur se trouvant dans l'un des outils n'est pas visible dans l'autre. En revanche, ils partagent les représentations internes des images de conteneurs, ce qui permet aux images de conteneurs créées, modifiées ou extraites de l'un d'eux d'être visibles et exploitables dans l'autre.  

Le projet Buildah a vu le jour chez Red Hat. Nos ingénieurs et développeurs ont collaboré pour créer un outil utile qui permettrait de gagner du temps et d'accroître la productivité. Buildah est un outil précieux pour quiconque travaille avec des conteneurs Linux. Et en matière de conteneurs et de Kubernetes, nos solutions répondent à tous vos besoins, du système d'exploitation à l'automatisation

Chez Red Hat, nous maîtrisons les conteneurs et Kubernetes. Nous proposons les produits et services qui vous permettront d'élaborer et d'exécuter votre stratégie de conteneurs correctement.Nos solutions répondent à toutes vos attentes, qu'il s'agisse de réunir vos équipes de développement autour d'une plateforme conçue pour les conteneurs, d'exécuter votre infrastructure de conteneurs sur un système d'exploitation de premier ordre, ou encore de fournir des solutions de stockage adaptées aux données massives générées par les conteneurs.

Pour aller plus loin

ARTICLE

Conteneurs et machines virtuelles

Les conteneurs Linux et les machines virtuelles sont des environnements informatiques en paquets qui associent divers composants et les isolent du reste du système.

ARTICLE

L'orchestration des conteneurs, qu'est-ce que c'est ?

L'orchestration des conteneurs permet d'automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs.

ARTICLE

Un conteneur Linux, qu'est-ce que c'est ?

Un conteneur Linux est un ensemble de processus isolés du système. Un conteneur s'exécute à partir d'une image distincte qui fournit tous les fichiers nécessaires à la prise en charge des processus qu'il contient.

En savoir plus sur les conteneurs

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

Formations

Cours gratuit

Présentation technique de l'exécution de conteneurs avec Red Hat

Cours gratuit

Présentation technique du déploiement d'applications conteneurisées

Cours gratuit

Développement d'applications cloud-native avec des architectures de microservices