Cómo usar el comando docker buildx history rm para eliminar registros de compilación

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a gestionar registros de compilación (build records) utilizando el comando docker buildx history rm. Estos registros son valiosos para rastrear tus procesos de compilación y sus resultados.

Comenzarás creando un registro de compilación con docker buildx build y guardando sus metadatos. Luego, aprenderás a listar los registros existentes usando docker buildx ls para ver sus detalles. Finalmente, practicarás la eliminación de registros específicos y la limpieza de todos los registros utilizando el comando docker buildx history rm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/SystemManagementGroup -.-> docker/prune("Remove Unused Docker Objects") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555055{{"Cómo usar el comando docker buildx history rm para eliminar registros de compilación"}} docker/prune -.-> lab-555055{{"Cómo usar el comando docker buildx history rm para eliminar registros de compilación"}} docker/build -.-> lab-555055{{"Cómo usar el comando docker buildx history rm para eliminar registros de compilación"}} end

Crear un registro de compilación (build record)

En este paso, aprenderás cómo crear un registro de compilación utilizando el comando docker buildx build. Estos registros son útiles para rastrear los resultados de tus compilaciones, incluyendo el contexto de compilación, argumentos de compilación y el ID de la imagen resultante.

Primero, creemos un Dockerfile simple que usaremos para la compilación. Navega a tu directorio de proyecto y crea un archivo llamado Dockerfile con el siguiente contenido:

FROM alpine
CMD ["echo", "Hello, Docker!"]

Este Dockerfile es muy sencillo. Utiliza la imagen base alpine y define un comando para imprimir "Hello, Docker!".

Ahora, compilaremos una imagen desde este Dockerfile y crearemos un registro de compilación. Usaremos el comando docker buildx build con la bandera --metadata-file para guardar el registro en un archivo.

docker buildx build . --metadata-file build-record.json -t my-hello-image

En este comando:

  • docker buildx build . indica a Docker que compile una imagen desde el Dockerfile en el directorio actual.
  • --metadata-file build-record.json especifica que el registro de compilación debe guardarse en un archivo llamado build-record.json.
  • -t my-hello-image etiqueta la imagen resultante con el nombre my-hello-image.

Después de ejecutar el comando, verás una salida que indica el proceso de compilación. Se creará un archivo llamado build-record.json en tu directorio actual. Este archivo contiene el registro de compilación en formato JSON.

Puedes ver el contenido del archivo build-record.json usando el comando cat:

cat build-record.json

Esto mostrará el contenido JSON del registro de compilación, que incluye información sobre la compilación.

Listar registros de compilación

En este paso, aprenderás cómo listar los registros de compilación existentes utilizando el comando docker buildx ls. Este comando te permite ver una lista de todos los registros de compilación que se han creado.

Para listar los registros de compilación, simplemente ejecuta el siguiente comando:

docker buildx ls

Este comando mostrará una tabla con información sobre los registros de compilación disponibles. La salida típicamente incluye el nombre del constructor (builder), el controlador (driver) utilizado y el estado.

Deberías ver una entrada para el constructor predeterminado, que se utiliza cuando ejecutas docker buildx build. El registro de compilación que creamos en el paso anterior está asociado con este constructor.

El comando docker buildx ls es útil para obtener una visión general de tus entornos de compilación y los registros asociados.

Eliminar un registro de compilación específico

En este paso, aprenderás cómo eliminar un registro de compilación específico utilizando el comando docker buildx prune. Esto es útil para limpiar registros individuales que ya no necesites.

Para eliminar un registro específico, primero necesitas identificar su ID. Puedes encontrar el ID del registro en el archivo build-record.json que creamos en el primer paso. Abre el archivo usando cat:

cat build-record.json

Busca la sección "BuildRecord" en la salida JSON. Dentro de esta sección, encontrarás un campo "ID". Copia el valor de este ID, que será una cadena larga de caracteres.

Ahora, usa el comando docker buildx prune con la bandera --keep-storage y el ID del registro para eliminar ese registro específico. Reemplaza <BUILD_RECORD_ID> con el ID real que copiaste.

docker buildx prune --keep-storage <BUILD_RECORD_ID>

La bandera --keep-storage se usa aquí para indicar que estamos eliminando registros de compilación, no caché de compilación.

Después de ejecutar el comando, deberías ver una salida confirmando que el registro ha sido eliminado.

Para verificar que el registro fue eliminado, puedes listar los registros nuevamente:

docker buildx ls

El registro específico que eliminaste ya no debería aparecer en la lista.

Eliminar todos los registros de compilación

En este paso, aprenderás cómo eliminar todos los registros de compilación utilizando el comando docker buildx prune con la bandera --all. Esta es una forma conveniente de limpiar todos los registros de compilación de una vez.

Para eliminar todos los registros de compilación, ejecuta el siguiente comando:

docker buildx prune --all --keep-storage --force

En este comando:

  • docker buildx prune es el comando para eliminar datos relacionados con compilaciones
  • --all especifica que se deben eliminar todos los registros de compilación
  • --keep-storage indica que estamos eliminando registros de compilación, no caché de compilación
  • --force omite la solicitud de confirmación, lo que es útil para scripts o en entornos donde no es posible la interacción

Después de ejecutar el comando, deberías ver una salida que indique que los registros de compilación han sido eliminados.

Para verificar que todos los registros se han eliminado, puedes listarlos nuevamente:

docker buildx ls

Ahora solo deberías ver la entrada del constructor (builder) predeterminado, sin registros de compilación específicos listados bajo él.

Esto concluye el laboratorio sobre gestión de registros de compilación en Docker. Has aprendido cómo crear, listar y eliminar registros de compilación.

Resumen

En este laboratorio, aprendiste a gestionar registros de compilación de Docker utilizando docker buildx. Comenzaste creando un Dockerfile simple y luego usaste docker buildx build con la bandera --metadata-file para construir una imagen y generar un registro de compilación, guardándolo en un archivo JSON. Posteriormente, aprendiste a listar los registros existentes usando el comando docker buildx ls para visualizar información sobre tus compilaciones.

El laboratorio también cubrió cómo eliminar registros específicos mediante docker buildx history rm <record_id> y cómo borrar todos los registros simultáneamente con docker buildx history rm --all. Estos pasos demuestran la gestión del ciclo de vida de los registros de compilación en Docker Buildx.