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
Buildah et Podman
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.
Pourquoi choisir Red Hat ?
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.