Buscar

Capítulo 9. Creación de imágenes de contenedores con Buildah

download PDF

El comando buildah permite crear imágenes de contenedores a partir de un contenedor en funcionamiento, un archivo Docker o desde cero. Las imágenes resultantes son compatibles con OCI, por lo que funcionarán en cualquier tiempo de ejecución de contenedores que cumpla con la especificación de tiempo de ejecución de OCI (como Docker y CRI-O).

Esta sección describe cómo utilizar el comando buildah para crear y trabajar con contenedores e imágenes de contenedores.

9.1. Comprensión de Buildah

El uso de Buildah se diferencia de la construcción de imágenes con el comando docker en los siguientes aspectos:

  • No Daemon!: ¡Evita el demonio Docker! Así que no se necesita ningún tiempo de ejecución del contenedor (Docker, CRI-O, u otro) para utilizar Buildah.
  • Base image or scratch: Le permite no sólo construir una imagen basada en otro contenedor, sino que también le permite empezar con una imagen vacía (desde cero).
  • Build tools external: No incluye herramientas de construcción dentro de la propia imagen. Como resultado, Buildah:

    • Reduce el tamaño de las imágenes que construye
    • Hace que la imagen sea más segura al no tener el software utilizado para construir el contenedor (como gcc, make y yum) dentro de la imagen resultante.
    • Crea imágenes que requieren menos recursos para transportarlas (porque son más pequeñas).

Buildah es capaz de operar sin Docker u otros tiempos de ejecución de contenedores almacenando los datos por separado e incluyendo características que te permiten no sólo construir imágenes, sino también ejecutar esas imágenes como contenedores. Por defecto, Buildah almacena las imágenes en un área identificada como containers-storage (/var/lib/containers).

Nota

La ubicación de almacenamiento de contenedores que el comando buildah utiliza por defecto es el mismo lugar que el motor de contenedores CRI-O utiliza para almacenar las copias locales de las imágenes. Por lo tanto, las imágenes extraídas de un registro por CRI-O o Buildah, o confirmadas por el comando buildah, se almacenarán en la misma estructura de directorios. Actualmente, sin embargo, CRI-O y Buildah no pueden compartir contenedores, aunque sí pueden compartir imágenes.

Hay más de una docena de opciones para utilizar con el comando buildah. Algunas de las principales actividades que puede realizar con el comando buildah incluyen:

  • Build a container from a Dockerfile: Utiliza un Dockerfile para construir una nueva imagen de contenedor (buildah bud).
  • Build a container from another image or scratch: Construye un nuevo contenedor, partiendo de una imagen base existente (buildah from <imagename>) o desde cero (buildah from scratch)
  • Inspecting a container or image: Ver los metadatos asociados al contenedor o a la imagen (buildah inspect)
  • Mount a container: Montar el sistema de archivos raíz de un contenedor para añadir o cambiar el contenido (buildah mount).
  • Create a new container layer: Utiliza el contenido actualizado del sistema de archivos raíz de un contenedor como capa del sistema de archivos para confirmar el contenido de una nueva imagen (buildah commit).
  • Unmount a container: Desmontar un contenedor montado (buildah umount).
  • Delete a container or an image: Eliminar un contenedor (buildah rm) o una imagen de contenedor (buildah rmi).

Para más detalles sobre Buildah, consulta la página de GitHub Buildah. La página de GitHub Buildah incluye páginas man y software que podría ser más reciente que el disponible con la versión de RHEL. Aquí hay otros artículos sobre Buildah que podrían interesarte:

9.1.1. Instalación de Buildah

El paquete buildah está disponible con el módulo container-tools en RHEL 8 (yum module install container-tools). Puede instalar el paquete buildah por separado escribiendo:

# yum -y install buildah

Con el paquete buildah instalado, puede consultar las páginas man incluidas en el paquete buildah para obtener detalles sobre su uso. Para ver las páginas man disponibles y otra documentación, abra una página man, escriba:

# rpm -qd buildah
# man buildah
buildah(1)         General Commands Manual         buildah(1)

NAME
 Buildah - A command line tool that facilitates building OCI container images.
...

Las siguientes secciones describen cómo utilizar buildah para obtener contenedores, construir un contenedor a partir de un archivo Docker, construir uno desde cero, y gestionar contenedores de varias maneras.

Red Hat logoGithubRedditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.