Construir un Contenedor con Buildah
Buildah es una herramienta que facilita la creación de imágenes de contenedores OCI. Puedes crear imágenes desde cero, a partir de un contenedor descargado de un registro o utilizando un Dockerfile.
Para usar buildah en Fedora IoT necesitarás instalar los paquetes en capas:
$ sudo rpm-ostree install buildah
Más generalmente buildah está utilizado en un entorno de desarrollador y los envases resultantes son entonces cargado a un registro para uso en cualquier aparato.
Los comandos para construir un envase de una imagen de base es similar a las líneas en un Dockerfile. El primer paso es para estirar las imágenes de base y crear el envase laborable:
$ buildah from fedora fedora-working-container
Añade paquetes al contenedor de trabajo:
$ buildah run fedora-working-container dnf install httpd -y
Crea un directorio de trabajo con algún contenido para un servidor web:
$ mkdir demo-httpd && cd demo-httpd && echo 'muestra contenedora' > index.html
Copia local de archivos en el contenedor de trabajo:
$ buildah copy fedora-working-container index.html /var/www/html/index.html
Define el contenedor del punto frontera para iniciar la aplicación:
$ buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" fedora-working-container
Una vez configurado, guarda la imagen:
$ buildah commit fedora-working-container fedora-myhttpd
Se puede alistar las imágenes locales:
$ buildah images
Las imágenes de buildah son las mismas que las imágenes de podman. Ahora puedes ejecutar el contenedor localmente con podman:
$ podman run fedora-myhttpd
Para que la imagen esté disponible en otros dispositivos, sube la imagen a un registro. La imagen predeterminada tiene la etiqueta 'latest'. Utiliza buildah tag para agregar etiquetas adicionales a la imagen antes de subirla a un repositorio.
Para subir la imagen a un registro Docker local:
$ buildah push --tls-verify=false fedora-myhttpd docker://localhost:5000/testuser/fedora-myhttpd:latest
Para enviar datos a un registro remoto, proporcione la URL correcta y cualquiera de las credenciales requeridas:
$ buildah push --creds testuser:5bbb9990-1234-1234-1234-aaa80066887c fedora-myhttpd docker://testuser/fedora-myhttpd
Skopeo puede ser utilizado para inspeccionar los resultados:
$ skopeo inspect --tls-verify=false docker://localhost:5000/testuser/fedora-myhttpd:latest
Comprueba la portabilidad del contenedor con los comandos docker pull, podman pull o buildah from.
Obtén más información sobre cómo usar Buildah en:
-
Fedora Magazine: Cómo crear imágenes de contenedores con Buildah (2018)
-
buildah.io: Tutoriales
Want to help? Learn how to contribute to Fedora Docs ›