GNU/Linux >> Linux Esercitazione >  >> Linux

Guida introduttiva a Buildah per la gestione dei container Linux

"Docker,  Docker, Docker ” questo è ciò che abbiamo usato fino a poco tempo fa.

Docker è ancora molto popolare, senza dubbio. Ma come sappiamo nel settore IT, l'evoluzione avviene rapidamente. Quindi ora ascolteremo Buildah, Podman, CRI-O, Skopeo .

Se vuoi metterti in relazione con un'analogia, abbiamo vari tipi di bacche come bacche nere, mirtilli, lamponi ma un giorno qualcuno decide di scegliere i mirtilli. Quindi, tra Buildah, Podman, CRI-O Ho deciso di scegliere buildah. Come mai? Perché è interessante quanto altre piattaforme container.

Entriamo in Buildah!

Cos'è Buildah?

Buildah è uno strumento da riga di comando per creare immagini OCI (Open Container Initiative). Può essere utilizzato con Docker, Podman, Kubernetes, qualunque sia il tuo strumento contenitore preferito!

Buildah viene utilizzato per creare, creare, gestire ed eseguire immagini di contenitori e contenitori.

Con Buildah crei un contenitore funzionante da un'immagine o da zero, puoi anche creare un'immagine da un contenitore funzionante o usando Dockerfile. Puoi creare le immagini in formato OCI o nel formato Docker a monte. Puoi modificare ed eliminare contenitori e immagini.

La cosa più interessante di Buildah è che non ha bisogno di un demone per funzionare. Quindi dì no a #bigfatdaemons. Non avere un demone in particolare dà scintille quando si tratta di integrazione continua e consegna continua per creare container.

Nessun demone significa anche che puoi eliminare il demone Docker di Buildah per creare immagini di container. Ma ciò non significa che Buildah non possa incorporare Docker. Perché usando Dockerfile puoi creare, gestire ed eseguire la tua immagine del contenitore da Buildah. Impressionante vero?

Installazione di Buildah su Linux

Vediamo come sporcarsi le mani con Buildah. I pacchetti per Buildah sono disponibili per Fedora e CentOS. Puoi installarli facilmente usando il gestore di pacchetti della tua distribuzione Linux. Elencherò qui alcuni di quelli comuni:

Per installare Buildah su Fedora, usa

dnf install buildah -y

Per installare Buildah su CentOS o RedHat:

yum install buildah -y

Per installare Buildah su Ubuntu e Debian, puoi utilizzare il PPA ufficiale fornito da Project Atomic.

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:projectatomic/ppa
sudo apt install buildah

Una volta installato Buildah, è il momento di giocarci.

Comandi di base per usare Buildah

Ecco alcuni comandi di base per iniziare con buildah.

Per conoscere la versione di Buildah.

buildah --version

Il compito iniziale è estrarre l'immagine del contenitore da repository pubblici o privati. Per estrarre l'immagine buildah usa la variabile "da". La variabile 'from' è la stessa usata in Dockerfile. La differenza è che in Docker specifichiamo la variabile 'da' in Dockerfile, dove in Buildah stiamo passando la variabile tramite riga di comando.

buildah from ubuntu

Nel comando sopra Ubuntu è la mia immagine del contenitore. Dopo aver estratto con successo l'immagine basata su Ubuntu alla fine dell'output vedrai:"ubuntu-working-container".

Dopo aver saputo di aver estratto l'immagine con successo, ora potresti voler vedere l'elenco delle immagini che hai estratto. Ma prima ti starai chiedendo "dove vengono archiviate queste immagini?". L'immagine estratta viene archiviata sull'host stesso.

buildah images 
 IMAGE NAME                                               IMAGE TAG            IMAGE ID             CREATED AT             SIZE
 docker.io/library/ubuntu                                 latest               94e814e2efa8         Mar 12, 2019 00:20     91.4 MB
 docker.io/library/fedora                                 latest               d09302f77cfc         Mar 12, 2019 00:20     283 MB

Se hai già familiarità con i comandi Docker, potresti aver notato le somiglianze nei comandi Docker e Buildah. Ad esempio, in Docker per vedere l'elenco delle immagini estratte utilizziamo il comando "immagini docker".

Ecco il comando per vedere l'elenco dei container in esecuzione. In Buildah non appena l'estrazione dell'immagine del contenitore è stata completata, il contenitore inizia a essere eseguito. Se confrontiamo Docker, dopo aver estratto l'immagine, dobbiamo eseguire l'immagine usando "docker run" e quindi solo il container inizia a funzionare.

CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME
 1063320d2dc0     *     94e814e2efa8 docker.io/library/ubuntu:latest  ubuntu-working-container
 978a399e0aa7     *     d09302f77cfc docker.io/library/fedora:latest  fedora-working-container

Se si desidera ripulire e rimuovere tutti i contenitori in esecuzione, eseguire il comando seguente con cautela. Perché una volta eseguito il comando, i tuoi contenitori verranno rimossi. Il privilegio che otteniamo in buildah su Docker è che Docker non ci consente di rimuovere il contenitore in esecuzione ma Buildah lo fa. Durante l'utilizzo di Docker prima dobbiamo fermare il contenitore e quindi solo noi possiamo rimuovere l'immagine.

buildah rm --all

Se sei bloccato con qualche comando, c'è l'opzione –help.

buildah --help

Vediamo alcuni casi d'uso di Buildah, per iniziare con l'implementazione pratica inizieremo con semplice. E una volta trovato il ritmo con Buildah, puoi dare sfogo alla tua creatività e fare cose interessanti.

Creazione di un'immagine del contenitore del server Web Apache [Hands On]

Proviamo quello che hai appena imparato con un progetto Buildah di esempio.

Cosa pensi di cosa sarà necessario per avere un server Web Apache in esecuzione all'interno di un container?

Naturalmente, un'immagine, un contenitore in esecuzione e cos'altro? Bene, la cosa principale di cui avremo bisogno è:abbiamo bisogno di installare un pacchetto httpd all'interno di un contenitore. Oh! Come lo facciamo? Nessun problema. Te lo dico io.

Per prima cosa estraiamo un'immagine di distribuzione Linux. Scegli quello che preferisci. Ho estratto l'immagine di base di CentOS.

buildah from centos

Ora installa httpd all'interno del contenitore CentOS. Puoi farlo usando questo comando:

buildah run centos-working-container yum install httpd -y

Vedrai un output come questo.

Quello che abbiamo fatto è stato installare il pacchetto httpd senza nemmeno entrare nel contenitore. È come allestire le parti della tua bici senza nemmeno entrare in garage. Puoi vedere nell'output del comando sopra, il pacchetto è stato installato di fronte a noi. Buildah non barare 😉

Ora creiamo un file index.html personalizzato.

echo "Linux Handbook is interesting !" > index.html

Copia il tuo file personalizzato index.html nel percorso della directory /var/www/html

buildah copy centos-working-container index.html /var/www/html/index.html
4e955fea0268518cbaa500409dfbec88f0ecebad28d84ecbe250baed97dba889

Ti starai chiedendo da dove viene /var/www/html? E perché abbiamo copiato il file index.html in quel percorso di directory?

Quando installiamo il pacchetto httpd, viene creata la directory /var/www/html. /var/www/html è solo la cartella principale predefinita del server web.

Per avviare il container, dobbiamo configurare entrypoint per il contenitore.

buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" centos-working-container

L'opzione "-DFOREGROUND" viene utilizzata insieme a "/usr/sbin/httpd" per avviare httpd. Quello che fa "-DFOREGROUND" è che esegue il processo httpd/apache in primo piano invece se in background. Il vantaggio del processo httpd NON in esecuzione in background è che puoi vedere i log di debug sulla console. Se non utilizziamo l'opzione "-DFOREGROUND", il server Apache si avvierà e subito dopo verrà arrestato.

Ora, dobbiamo salvare tutto ciò che abbiamo fatto all'interno del contenitore. L'impegno lo farà per noi.

buildah commit centos-working-container  Linux-Handbook

L'immagine di Linux-Handbook è disponibile ed è possibile eseguire il push di questa immagine nel registro per utilizzarla.

buildah images
IMAGE ID IMAGE NAME CREATED 
AT SIZE
9110ae7f579f docker.io/library/centos:latest 
Mar 31, 2019 14:36 234.7 MB
49bd5ec5be71 docker.io/library/Linux-Handbook:latest 
Apr 4, 2019 17:28 427.7 MB

Allora, tutto pronto per sporcarti le mani con Buildah?

Scritto da Servesha Dudhgaonkar


Linux
  1. Introduzione ai firewall Linux

  2. 5 suggerimenti per iniziare con la sicurezza del server Linux

  3. Iniziare con Samba per l'interoperabilità

  4. Introduzione a socat, uno strumento di inoltro multiuso per Linux

  5. Iniziare con PostgreSQL su Linux

Introduzione al sistema operativo Linux

Tutorial Vagrant – Introduzione a Vagrant in Linux

Introduzione a Docker Compose in Linux

Introduzione a VirtualBox in Linux – Parte 1

Introduzione a Flutter su desktop Linux

Guida introduttiva e installazione di Slack per Linux