Buscar

9.4. Modificación de un contenedor para crear una nueva imagen con Buildah

download PDF

Hay varias maneras de modificar un contenedor existente con el comando buildah y confirmar esos cambios en una nueva imagen de contenedor:

  • Montar un contenedor y copiar archivos en él
  • Utilice buildah copy y buildah config para modificar un contenedor

Una vez que haya modificado el contenedor, utilice buildah commit para confirmar los cambios en una nueva imagen.

9.4.1. Utilizando buildah mount para modificar un contenedor

Después de obtener una imagen con buildah from, puede utilizar esa imagen como base para una nueva imagen. El siguiente texto muestra cómo crear una nueva imagen montando un contenedor de trabajo, añadiendo archivos a ese contenedor, y luego confirmando los cambios en una nueva imagen.

Escriba lo siguiente para ver el contenedor de trabajo que utilizó anteriormente:

# buildah containers
CONTAINER ID BUILDER IMAGE ID     IMAGE NAME  CONTAINER NAME

dc8f21af4a47   *     1456eedf8101 registry.redhat.io/ubi8/ubi:latest
               ubi-working-container
6d1ffccb557d   *     ab230ac5aba3 docker.io/library/myecho:latest
               myecho-working-container

Monte la imagen del contenedor y establezca el punto de montaje en una variable ($mymount) para que sea más fácil de manejar:

# mymount=$(buildah mount myecho-working-container)
# echo $mymount
/var/lib/containers/storage/devicemapper/mnt/176c273fe28c23e5319805a2c48559305a57a706cc7ae7bec7da4cd79edd3c02/rootfs

Añade contenido al script creado anteriormente en el contenedor montado:

# echo 'echo \ "Incluso lo modificamos.\N" >> $mymount/usr/local/bin/myecho

Para confirmar el contenido que has añadido para crear una nueva imagen (llamada myecho), escribe lo siguiente:

# buildah commit myecho-working-container containers-storage:myecho2

Para comprobar que la nueva imagen incluye sus cambios, cree un contenedor de trabajo y ejecútelo:

# buildah images
IMAGE ID     IMAGE NAME     CREATED AT          SIZE
a7e06d3cd0e2 docker.io/library/myecho2:latest
                            Oct 12, 2017 15:15  3.144 KB
# buildah from docker.io/library/myecho2:latest
myecho2-working-container
# podman run docker.io/library/myecho2
This container works!
We even modified it.

Puede ver que el nuevo comando echo añadido al script muestra el texto adicional.

Cuando haya terminado, puede desmontar el contenedor:

# buildah umount myecho-working-container
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.