Cos'è Buildah?

Copia URL

Buildah è uno strumento open source basato su Linux che permette di creare container compatibili con gli standard Open Container Initiative (OCI), ossia container compatibili sia con Docker che con Kubernetes. Con Buildah puoi utilizzare i tuoi strumenti preferiti per creare immagini dei container efficienti a partire da un'immagine di base esistente oppure da un'immagine vuota. È un metodo più flessibile e sicuro per creare immagini dei container. In questo articolo approfondiremo il funzionamento di Buildah.

Buildah (alterazione del termine "builder" per riprodurre la pronuncia di Boston) è stato creato nel 2017 dal team guidato da Daniel Walsh in Red Hat. Il progetto prevedeva di realizzare un pacchetto "coreutils" di immagini dei container: una soluzione che si potesse utilizzare con strumenti host di container esistenti per creare immagini dei container compatibili con OCI e Docker. Gli utenti avrebbero poi potuto archiviare tali immagini in registri dei container per utilizzarle in più ambienti di runtime, con o senza l'impiego di un daemon di container, come quello di Docker ad esempio, che richiede privilegi di root e che vincola i container alla funzionalità del daemon stesso. 

Da questa idea è nato Buildah, uno strumento a riga di comando che:

  • Crea immagini dei container con o senza Dockerfile (un documento di testo che contiene tutti i comandi necessari per assemblare un'immagine)
  • Crea immagini dei container a partire da un'immagine di base esistente oppure da un'immagine vuota
  • Non include gli strumenti di compilazione all'interno dell'immagine. In questo modo è possibile creare immagini di dimensioni contenute, incrementare la sicurezza e agevolare il trasferimento che richiederà meno risorse
  • È compatibile con i Dockerfile e semplifica quindi la transizione da Docker
  • Crea immagini ad hoc in modo da permettere all'utente che le ha create di ordinarle facilmente

La possibilità di creare immagini senza Dockerfile e di integrare altri linguaggi di programmazione nel processo, oltre all'opportunità di utilizzare strumenti di compilazione esterni all'immagine fanno di Buildah uno strumento flessibile ed efficiente, capace di accelerare l'innovazione e favorire l'introduzione di nuove idee. Inoltre, mettendo a disposizione solo gli strumenti e i processi strettamente necessari, snellisce la creazione delle immagini e le future rielaborazioni.

Buildah permette anche di:

  • Esaminare, verificare e modificare le immagini
  • Inviare i container e le immagini da uno storage locale a un registro o repository pubblico o privato
  • Inviare o acquisire le immagini da Docker Hub
  • Rimuovere le immagini dei container archiviate in locale
  • Montare o smontare il file system root di un container in funzione
  • Utilizzare i contenuti aggiornati del file system root di un container come punto di partenza per una nuova immagine

Risorse da Red Hat

Buildah e Podman sono entrambi progetti open source complementari che attraverso uno strumento a riga di comando permettono di creare e lavorare con i container e le immagini compatibili con OCI. È nato prima Buildah e Podman, un progetto sviluppato solo in seguito, utilizza il suo codice per la compilazione. In generale i comandi di Buildah sono molto più precisi di quelli di Podman, offrono quindi un controllo più capillare sulle immagini e permettono di creare livelli di immagine più accurati, mentre il comando "build" di Podman comprende solo una parte delle funzionalità di Buildah. 

Buildah è particolarmente adatto alla creazione di immagini dei container: ripete tutti i comandi presenti in un Dockerfile senza bisogno del componente socket daemon. Podman invece è più indicato per le attività di gestione e modifica delle immagini in un container. Con Podman è possibile creare un container (prendendo da Buildah l'immagine) ed eseguirlo, gestirlo e modificarlo in un ambiente di produzione attraverso un'interfaccia a riga di comando (CLI) familiare (nella CLI di Podman si possono eseguire tutti i comandi della CLI di Docker). 

Un altro aspetto che distingue Podman da Buildah è lo scopo per cui vengono utilizzati i container: i container di Buildah hanno un carattere provvisorio, sono creati principalmente per consentire il trasferimento dei contenuti all'immagine del container appena creata. I container realizzati con Podman invece sono destinati a essere usati e rimanere in funzione per periodi di tempo più lunghi. I container di Buildah sono associati a finalità a breve termine, mentre i container di Podman riguardano il lungo periodo. 

Ancora una cosa. Buildah e Podman non condividono le rappresentazioni interne dei container, quindi i container presenti in uno non sono visibili nell'altro, ma condividono le rappresentazioni interne delle immagini dei container, in modo che queste ultime possano essere create, modificate o estratte da una di esse ed essere visualizzate e utilizzate nell'altra.  

Buildah è nato dalla collaborazione degli ingegneri e degli sviluppatori di Red Hat, che puntavano a realizzare uno strumento capace di accelerare i tempi di creazione delle immagini e dei container e di aumentare la produttività dei team. Come Podman e Skopeo, Buildah è utile a chi lavora con i container Linux: con l'upgrade di Red Hat Enterprise Linux puoi trarre il massimo vantaggio da tutti questi strumenti. Quando si tratta di container e Kubernetes, Red Hat si contraddistingue per l'ampia gamma di soluzioni adatte a sostenere qualunque iniziativa, dal sistema operativo all'automazione

Red Hat conta su un'ampia esperienza in ambito container e Kubernetes, e offre tutti i prodotti e i servizi necessari alla progettazione e alla realizzazione di una strategia di container adatta alla tua azienda. Che si tratti offrire ai team di sviluppo una piattaforma studiata per i container, di mettere a disposizione uno dei migliori sistemi operativi per l'esecuzione delle infrastrutture di container o di fornire soluzioni di storage capaci di gestire i grandi volumi di dati generati dai container, Red Hat ha la soluzione giusta per ogni esigenza.

Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Automazione open source: differenze tra Ansible e Chef

Ansible e Chef sono strumenti open source per l'automazione dell'IT sviluppati dalla community. Questo articolo illustra in maniera approfondita le analogie e le differenze fra Ansible e Chef.

I vantaggi di Ansible, Terraform, Puppet, Chef e Salt

Scopri cos'hanno in comune e quali sono le differenze tra Ansible, Terraform, Puppet, Chef e Salt.

Cos'è Podman Desktop?

Podman Desktop è uno strumento open source gratuito pensato per semplificare l'utilizzo dei container in ambienti di sviluppo locali.

Open source: risorse consigliate

Articoli correlati