GNU/Linux >> Tutoriales Linux >  >> Linux

Primeros pasos con Buildah para administrar contenedores de Linux

Docker,  Docker, Docker ” eso 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 ocurre rápidamente. Así que ahora escucharemos Buildah, Podman, CRI-O, Skopeo .

Si quiere relacionarse con una analogía, tenemos varios tipos de bayas, como bayas negras, arándanos, frambuesas, pero algún día alguien decide elegir los arándanos. Así entre Buildah, Podman, CRI-O Decidí elegir buildah. ¿Por qué? Porque es tan interesante como otras plataformas de contenedores.

¡Sumerjámonos en Buildah!

¿Qué es Buildah?

Buildah es una herramienta de línea de comandos para crear imágenes de Open Container Initiative (OCI). Se puede usar con Docker, Podman, Kubernetes, ¡cualquiera que sea su herramienta de contenedores favorita!

Buildah se usa para crear, compilar, administrar y ejecutar imágenes de contenedores y contenedores.

Con Buildah, crea un contenedor de trabajo a partir de una imagen o desde cero. También puede crear una imagen a partir de un contenedor de trabajo o usando Dockerfile. Puede crear las imágenes en formato OCI o en el formato Docker ascendente. 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 los #bigfatdaemons. No tener un demonio da chispa específicamente cuando se trata de integración continua y entrega continua para construir contenedores.

Ningún demonio también significa que puede eliminar el demonio de Docker por Buildah para crear imágenes de contenedores. Pero eso no significa que Buildah no pueda incorporarse con Docker. Porque usando Dockerfile puedes construir, administrar y ejecutar tu imagen de contenedor por Buildah. ¿Impresionante verdad?

Instalando Buildah en Linux

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

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 el PPA oficial proporcionado por 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 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.

Para conocer la versión de Buildah.

buildah --version

La tarea inicial es extraer la imagen del contenedor de repositorios públicos o privados. Para extraer la imagen, buildah usa la variable 'desde'. La variable 'desde' es la misma que se usa en Dockerfile. La diferencia es que en Docker especificamos la variable 'desde' en Dockerfile, mientras que en Buildah pasamos la variable a través de la línea de comandos.

buildah from ubuntu

En el comando anterior, Ubuntu es mi imagen de 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 extraído la imagen con éxito, ahora puede querer ver la lista de imágenes que extrajo. Pero antes de eso, es posible que se pregunte "¿dónde se almacenan estas imágenes?". La imagen extraída 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 extraídas, usamos el comando 'imágenes acoplables'.

Aquí está el comando para ver la lista de contenedores en ejecución. En Buildah, tan pronto como la extracción de la imagen del contenedor se realiza por completo, ese contenedor comienza a ejecutarse. Si se compara con Docker, después de extraer la imagen, necesitamos ejecutar la imagen usando 'docker run' y luego solo el contenedor comienza a ejecutarse.

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 eliminar todos los contenedores en ejecución, ejecute el siguiente comando con precaución. Porque una vez que ejecute el comando, sus contenedores serán eliminados. El privilegio que tenemos en buildah sobre Docker es que Docker no nos permite eliminar el contenedor en ejecución, pero Buildah sí. Mientras usamos Docker, primero tenemos que detener el contenedor y luego solo podemos eliminar la imagen.

buildah rm --all

Si está atascado con algún 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 simple. Y una vez que encuentre el ritmo con el Buildah, puede verter su creatividad y hacer cosas interesantes.

Crear una imagen de contenedor de servidor web Apache [Práctica]

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

¿Qué crees que se necesitará para tener un servidor web Apache ejecutándose dentro de un contenedor?

Por supuesto, una imagen, un contenedor en ejecución y ¿qué más? Bueno, lo principal que necesitaremos es instalar un paquete httpd dentro de un contenedor. ¡Vaya! ¿como hacemos eso? No hay problema. Te diré eso.

Primero extraigamos una imagen de distribución de Linux. Elige la que sea tu favorita. Saqué la imagen base de CentOS.

buildah from centos

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

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

Verás un resultado como este.

Lo que hicimos fue instalar el paquete httpd sin siquiera entrar en el contenedor. Es como configurar las piezas de su bicicleta sin siquiera entrar en el garaje. Puede ver en la salida del comando anterior, el paquete se ha instalado frente a nosotros. Buildah no hace trampa 😉

Ahora, creemos un archivo index.html personalizado.

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

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

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

Debes estar preguntándote de dónde viene /var/www/html. ¿Y por qué copiamos el archivo index.html en esa ruta de directorio?

Cuando instalamos el paquete httpd, se crea el directorio /var/www/html. /var/www/html es solo la carpeta raíz predeterminada del 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 hacerlo en segundo plano. El beneficio de que el proceso httpd NO se ejecute 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, justo después, se detendrá.

Ahora, necesitamos guardar lo que hayamos hecho dentro del contenedor. El compromiso lo hará por nosotros.

buildah commit centos-working-container  Linux-Handbook

La imagen del Manual de Linux está disponible y puede insertar esta imagen en el 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 listo para ensuciarte las manos con Buildah?

Escrito por Servesha Dudhgaonkar


Linux
  1. Introducción a los cortafuegos de Linux

  2. 5 consejos para comenzar con la seguridad del servidor Linux

  3. Primeros pasos con Samba para la interoperabilidad

  4. Primeros pasos con socat, una herramienta de retransmisión multipropósito para Linux

  5. Primeros pasos con SSH en Linux

Primeros pasos con el sistema operativo Linux

Tutorial de Vagrant:Primeros pasos con Vagrant en Linux

Primeros pasos con Docker Compose en Linux

Comenzando con VirtualBox en Linux – Parte 1

Primeros pasos con Flutter en el escritorio de Linux

Introducción e instalación de Slack para Linux