Introducción a Buildah para gestionar contenedores de Linux

Hola aquí Luis. Os traigo un nuevo post sobre el sistema operativo mas molón. Encantado linuxeros.

«Docker, Docker, Docker»: esto es lo que usábamos hasta hace poco.

Docker sigue siendo muy popular, sin duda. Pero como sabemos en la industria de TI, la evolución está ocurriendo rápidamente. Así que ahora vamos a escuchar Buildah, Podman, CRI-O, Skopje.

Si desea conectarse con una analogía, tenemos diferentes tipos de frutas como moras, arándanos, frambuesas, pero un día alguien decide elegir arándanos. Entonces, entre Buildah, Podman, CRI-O, decidí elegir buildah. ¿Por qué? Porque es tan interesante como otras plataformas de contenedores.

¡Vamos a sumergirnos en Buildah!

¿Qué es Buildah?

Buildah es una herramienta de construcción de línea de comandos Iniciativa de contenedor abierto (OCI) imágenes. Se puede utilizar con Docker, Podman, Cubernet – ¡Cualquiera de tus herramientas de contenedor favoritas!

Buildah se utiliza para crear, construir, administrar, lanzar imágenes de contenedores y contenedores.

Con Buildah puedes crear un contenedor de trabajo a partir de una imagen o desde cero. También puedes crear una imagen a partir de un contenedor de trabajo o usando Dockerfile. Puede crear las imágenes en formato OCI o en formato Docker en la cadena. Puede modificar y eliminar contenedores e imágenes.

Lo más interesante de Buildah es que no necesita un demonio para funcionar. Así que di no a #bigfatdaemons. La falta de un demonio da chispas especialmente cuando se trata de integración continua y entrega continua para construir contenedores.

Ningún demonio también significa que puede eliminar el demonio Docker de Buildah para crear imágenes de contenedor. Pero eso no significa que Buildah no pueda unirse a Docker. Porque con Dockerfile puedes crear, administrar y lanzar tu imagen de contenedor desde Buildah. Impresionante, ¿no?

Instalar Buildah en Linux

Veamos cómo ensuciarte las manos con Buildah. Los paquetes Buildah están disponibles para Fedora y CentOS. Puede instalarlos fácilmente utilizando el administrador de paquetes de su distribución de Linux. Aquí hay algunos de los más comunes:

Para instalar Buildah en Fedora, use

dnf install buildah -y

Para instalar Buildah en CentOS o RedHat:

yum install buildah -y

Para instalar Buildah en Ubuntu y Debian, puede usar PPA oficial proporcionado por Proyecto atómico.

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

Una vez que Buildah está instalado, es hora de jugar con él.

Comandos básicos para usar Buildah

Aquí hay algunos comandos básicos para comenzar con buildah.

Conocer la versión Buildah.

buildah --version

La tarea inicial es descargar la imagen del contenedor desde repositorios públicos o privados. La variable ‘from’ se usa para descargar la imagen de compilación. la variable ‘from’ es la misma que se usa en Dockerfile. La diferencia está en Docker, especificamos la variable ‘desde’ en Dockerfile, donde en Buildah pasamos la variable a través de la línea de comando.

buildah from ubuntu

En el comando anterior, Ubuntu es mi imagen de un contenedor. Después de extraer con éxito la imagen basada en Ubuntu al final de la salida, verá – «ubuntu-working-container».

Una vez que sepa que ha descargado correctamente la imagen, es posible que ahora desee ver una lista de las imágenes que ha extraído. Pero antes de eso, es posible que se pregunte: «¿Dónde se almacenan estas imágenes?» La imagen descargada se almacena en el propio host.

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

Si ya está familiarizado con los comandos de Docker, es posible que haya notado las similitudes entre los comandos de Docker y Buildah. Por ejemplo, en Docker, para ver la lista de imágenes descargadas, use el comando «docker images».

Aquí está el comando para ver la lista de contenedores en funcionamiento. En Buildah, tan pronto como se completa la descarga de la imagen del contenedor, este contenedor comienza a ejecutarse. Si lo comparamos con Docker, después de tirar de la imagen, tenemos que iniciar la imagen usando ‘docker run’ y luego solo el contenedor comienza a funcionar.

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

Si desea limpiar y quitar todos los contenedores que funcionan, siga cuidadosamente el comando a continuación. Porque una vez que ejecute el comando, se eliminarán sus contenedores. El privilegio que obtenemos en buildah sobre Docker es que Docker no nos permite eliminar el contenedor de trabajo, pero Buildah sí. Mientras usamos Docker, primero debemos detener el contenedor y luego solo podemos eliminar la imagen.

buildah rm --all

Si le queda un comando, existe la opción -help.

buildah --help

Veamos algunos casos de uso de Buildah para comenzar con la implementación práctica, comenzaremos con uno simple. Y una vez que encuentre el ritmo con Buildah, puede derramar su creatividad y hacer cosas interesantes.

Cree una imagen de un contenedor de servidor web Apache [Hands On]

Probemos lo que acaba de aprender con un proyecto de muestra de Buildah.

¿Qué cree que se necesitará para tener un servidor web Apache ejecutándose en un contenedor?

Por supuesto, una imagen, un contenedor de trabajo y ¿qué más? Bueno, lo principal que necesitaremos es: necesitamos instalar un httpd paquete en un recipiente. ¡Oh! ¿cómo hacerlo? No hay problema. Te diré esto.

Primero saquemos una imagen de distribución de Linux. Elige cuál de tus favoritos. halé CentOS imagen principal.

buildah from centos

Ahora instale httpd dentro del contenedor CentOS. Puedes hacer esto usando este comando:

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

Verás una salida como esta.

Lo que hicimos fue instalar el paquete httpd sin siquiera entrar al contenedor. Es como ajustar las piezas de tu bicicleta sin siquiera entrar al garaje. Puede ver en la salida del comando anterior, el paquete está instalado frente a nosotros. Buildah no la engaña

Ahora creemos un archivo index.html personalizado.

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

Copie su archivo index.html personalizado en la ruta del directorio / var / www / html

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

¿Se pregunta de dónde viene / var / www / html? ¿Y por qué copiamos el archivo index.html en este directorio?

Cuando instalamos el paquete httpd, se crea el directorio / var / www / html. /var/www/html es solo la carpeta predeterminada predeterminada en el servidor web.

Para iniciar el contenedor, necesitamos configurar punto de entrada para el contenedor.

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

La opción “-DFOREGROUND” se usa junto con “/ usr / sbin / httpd” para iniciar httpd. Lo que hace «-DFOREGROUND» es que hace que el proceso httpd / apache se ejecute en primer plano en lugar de en segundo plano. La ventaja de que el proceso httpd NO se ejecuta en segundo plano es que puede ver los registros de depuración en la consola. Si no usamos la opción “-DFOREGROUND”, el servidor apache se iniciará y se detendrá inmediatamente.

Ahora tenemos que guardar todo lo que hicimos en el contenedor. El compromiso lo hará por nosotros.

buildah commit centos-working-container  Linux-Handbook

La imagen del manual de Linux está disponible y puede enviarla al registro para usarla.

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

Entonces, ¿todo está configurado para ensuciarse las manos con Buildah?

Escrito por Servesha Dudhgaonkar

Este Blog lo hacemos para ayudar y servir de referencia a la gente Linux. Esperamos que os guste.

Leave a Reply