5.5. Ejecutar Buildah en un contenedor
El procedimiento demuestra cómo ejecutar Buildah en un contenedor y crear un contenedor de trabajo basado en una imagen.
Procedimiento
Inicie sesión en el registro de registry.redhat.io:
$ podman login registry.redhat.io Username: myuser@mycompany.com Password: *********** Login Succeeded!
Extraiga y ejecute la imagen
registry.redhat.io/rhel8/buildah
:# podman run --rm --device /dev/fuse -it registry.redhat.io/rhel8/buildah /bin/bash
-
La opción
--rm
elimina la imagenregistry.redhat.io/rhel8/buildah
tras la salida del contenedor. -
La opción
--device
añade un dispositivo anfitrión al contenedor.
-
La opción
Cree un nuevo contenedor utilizando una imagen de
registry.access.redhat.com/ubi8
:# buildah --storage-opt=overlay.mount_program=/usr/bin/fuse-overlayfs from registry.access.redhat.com/ubi8 ... ubi8-working-container
-
La opción
--storage-opt
establece el controlador de almacenamiento. Esta opción anula todas las opciones configuradas en las variables de entorno/etc/containers/storage.conf
ySTORAGE_OPTS
. -
/usr/bin/fuse-overlayfs
es una implementación de FUSE (Filesystem in Userspace) y permite a los usuarios no root crear sus sistemas de archivos sin modificar el código del kernel.
-
La opción
Ejecute el comando
ls /
dentro del contenedorubi8-working-container
:# buildah --storage-opt=overlay.mount_program=/usr/bin/fuse-overlayfs run --isolation=chroot ubi8-working-container ls / bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv
Para listar todas las imágenes en un almacenamiento local, introduzca:
# buildah images REPOSITORY TAG IMAGE ID CREATED SIZE registry.access.redhat.com/ubi8 latest ecbc6f53bba0 5 weeks ago 211 MB
Para listar los contenedores en funcionamiento y sus imágenes base, introduzca:
# buildah containers CONTAINER ID BUILDER IMAGE ID IMAGE NAME CONTAINER NAME 0aaba7192762 * ecbc6f53bba0 registry.access.redhat.com/ub... ubi8-working-container
Para empujar la imagen de
registry.access.redhat.com/ubi8
al registro local ubicado enregistry.example.com
:# buildah push ecbc6f53bba0 registry.example.com:5000/ubi8/ubi
Recursos adicionales
- Para más información sobre cómo ejecutar Buildah en un contenedor, consulta el artículo Best practices for running Buildah in a container de Daniel Walsh.