Pide tu presupuesto ya!
3rd January 2024
Los Dockerfiles proporcionan una forma estructurada y reproducible de definir imágenes, lo cual funciona muy bien. ¿Pero sabía que también puede adaptar cada aspecto del entorno de su contenedor para cumplir con sus requisitos únicos?
La creación de imágenes OCI desde cero ofrece la máxima flexibilidad. Por ejemplo, puede reducir el tamaño de la imagen final instalando sólo los paquetes necesarios para su aplicación.
Para crear una imagen OCI desde cero, haga lo siguiente:
1. Ejecute el siguiente comando para install debootstrap en su sistema. debootstrap es su compañero ideal para crear entornos Debian mínimos desde cero.
Esta herramienta reúne meticulosamente lo esencial al buscar y descomprimir archivos de Debian en un subdirectorio designado. ¿El resultado? Un entorno Debian mínimo que forma la base para sus configuraciones y aplicaciones personalizadas.
2. Con debootstrap instalado, ejecute los siguientes comandos para crear un contenedor ($newcontainer) con la imagen base más mínima disponible (scratch).
# Create a minimal working container using the 'scratch' base image
newcontainer=$(buildah from scratch)
# Verify the creation of the new working container
buildah containers
Como se ve a continuación, un nuevo contenedor llamado contenedor de trabajo es creado.

3. A continuación, ejecute los siguientes comandos para lograr lo siguiente:
mount punto de la working-container sistema de archivos en la variable de entorno scratchmnt.echo) el punto de montaje obtenido ($scratchmnt).scratchmnt=$(buildah mount $newcontainer)
echo $scratchmnt
La siguiente información puede ser crucial cuando se trabaja con el contenido del contenedor, permitiéndole manipular archivos y directorios desde el sistema host.

4. Ahora, ejecuta el debootstrap comando a continuación para instalar Debian bookworm sistema base al $scratchmnt directorio donde contenedor de trabajo esta montado.
debootstrap bookworm $scratchmnt

5. Una vez instalado, ejecute los siguientes comandos para ejecutar el bash shell dentro del contenedor especificado por la variable $newcontainer y exit El contenedor.
# Execute the bash shell
buildah run $newcontainer bash
# Or press Ctrl+D to exit the container
exit

6. Cree una nueva aplicación de muestra llamada hola.sh en su editor preferido e inserte el siguiente código, que imprime un mensaje 10 veces.
#!/usr/bin/env bash
for i in {1..10}; do
echo "Hello Buildah - diseño-web-barato.com"
done
7. Ejecute lo siguiente chmod comando, que no tiene salida si tiene éxito, para hacer el *hello.sh* archivo ejecutable.
8. Ahora, ejecute el siguiente comando para copiar el hello.sh archivo al working-container directorio (/usr/bin). Al hacerlo, se garantiza que el script sea ejecutable y accesible dentro del contenedor.
buildah copy $newcontainer ./hello.sh /usr/bin

9. Una vez copiado, ejecute el buildah config comando a continuación para configurar el comando predeterminado (--cmd) que se ejecutará cuando se inicie el contenedor.
El comando predeterminado en este caso es /usr/bin/hello.shque ejecuta su hello.sh guion.
buildah config --cmd /usr/bin/hello.sh $newcontainer
10. Además, ejecute los siguientes comandos para crear una nueva imagen OCI (commit) llamado nginx-debian basado en el contenedor working-container y verificar la lista de images.
# Commit the changes to create a new image named 'nginx-debian'
buildah commit $newcontainer nginx-debian
# List available container images, including 'nginx-debian'
buildah images
En el resultado siguiente, el nginx-debian La imagen está disponible entre otras imágenes.


11. Ahora, ejecute los siguientes comandos para unmount y eliminar (rm) working-container.
Estos comandos no tienen salida, pero este proceso garantiza los recursos asociados con el working-container son liberados y limpiados adecuadamente.
buildah unmount working-container
buildah rm working-container
12. Finalmente, ejecute el siguiente comando para realizar lo siguiente:
nginx-debian imagen y run ese contenedor.--rm) el contenedor automáticamente una vez que se completa la ejecución.Este enfoque es una práctica común para contenedores de corta duración donde el objetivo es ejecutar una tarea y luego descartar el contenedor. Lo último que querrías es que estos contenedores se quedaran pegados y abarrotaran tu sistema, volviéndote loco.
podman run --rm nginx-debian
Como se muestra a continuación, el contenedor ejecuta el comando de inicio (/usr/bin/hola.sh) e impresiones Hola Buildah – diseño-web-barato.com 10 veces.
Este resultado demuestra la creación exitosa y la funcionalidad de su nginx-debian imagen del contenedor.

Leave a comment