Como usar o comando docker buildx history rm para remover registros de construção

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como gerenciar registros de construção usando o comando docker buildx history rm. Os registros de construção são valiosos para rastrear seus processos de construção e seus resultados.

Você começará criando um registro de construção usando docker buildx build e salvando seus metadados. Em seguida, você aprenderá como listar os registros de construção existentes usando docker buildx ls para visualizar seus detalhes. Finalmente, você praticará a remoção de registros de construção específicos e a limpeza de todos os registros de construção usando o comando docker buildx history rm.

Criar um registro de construção

Nesta etapa, você aprenderá como criar um registro de construção usando o comando docker buildx build. Os registros de construção são úteis para rastrear os resultados de suas construções, incluindo o contexto de construção, os argumentos de construção e o ID da imagem resultante.

Primeiro, vamos criar um Dockerfile simples que usaremos para a construção. Navegue até o diretório do seu projeto e crie um arquivo chamado Dockerfile com o seguinte conteúdo:

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

Este Dockerfile é muito simples. Ele usa a imagem base alpine e define um comando para imprimir "Hello, Docker!".

Agora, vamos construir uma imagem a partir deste Dockerfile e criar um registro de construção. Usaremos o comando docker buildx build com a flag --metadata-file para salvar o registro de construção em um arquivo.

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

Neste comando:

  • docker buildx build . diz ao Docker para construir uma imagem a partir do Dockerfile no diretório atual.
  • --metadata-file build-record.json especifica que o registro de construção deve ser salvo em um arquivo chamado build-record.json.
  • -t my-hello-image marca a imagem resultante com o nome my-hello-image.

Após executar o comando, você deverá ver a saída indicando o processo de construção. Um arquivo chamado build-record.json será criado no seu diretório atual. Este arquivo contém o registro de construção em formato JSON.

Você pode visualizar o conteúdo do arquivo build-record.json usando o comando cat:

cat build-record.json

Isso exibirá o conteúdo JSON do registro de construção, que inclui informações sobre a construção.

Listar registros de construção

Nesta etapa, você aprenderá como listar os registros de construção existentes usando o comando docker buildx ls. Este comando permite que você veja uma lista de todos os registros de construção que foram criados.

Para listar os registros de construção, basta executar o seguinte comando:

docker buildx ls

Este comando exibirá uma tabela com informações sobre os registros de construção disponíveis. A saída normalmente inclui o nome do construtor (builder), o driver usado e o status.

Você deve ver uma entrada para o construtor padrão, que é usado quando você executa docker buildx build. O registro de construção que criamos na etapa anterior está associado a este construtor.

O comando docker buildx ls é útil para obter uma visão geral de seus ambientes de construção e dos registros de construção associados.

Remover um registro de construção específico

Nesta etapa, você aprenderá como remover um registro de construção específico usando o comando docker buildx prune. Isso é útil para limpar registros de construção individuais que você não precisa mais.

Para remover um registro de construção específico, você precisa identificar seu ID. Você pode encontrar o ID do registro de construção no arquivo build-record.json que criamos na primeira etapa. Abra o arquivo usando cat:

cat build-record.json

Procure a seção "BuildRecord" na saída JSON. Dentro desta seção, você encontrará um campo "ID". Copie o valor deste ID. Será uma longa sequência de caracteres.

Agora, use o comando docker buildx prune com a flag --keep-storage e o ID do registro de construção para remover o registro específico. Substitua <BUILD_RECORD_ID> pelo ID real que você copiou.

docker buildx prune --keep-storage <BUILD_RECORD_ID>

A flag --keep-storage é usada aqui para indicar que estamos removendo registros de construção, não o cache de construção.

Após executar o comando, você deverá ver a saída confirmando que o registro de construção foi removido.

Para verificar se o registro de construção foi removido, você pode tentar listar os registros de construção novamente:

docker buildx ls

O registro de construção específico que você removeu não deverá mais aparecer na lista.

Remover todos os registros de construção

Nesta etapa, você aprenderá como remover todos os registros de construção usando o comando docker buildx prune com a flag --all. Esta é uma maneira conveniente de limpar todos os registros de construção de uma vez.

Para remover todos os registros de construção, execute o seguinte comando:

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

Neste comando:

  • docker buildx prune é o comando para remover dados relacionados à construção.
  • --all especifica que todos os registros de construção devem ser removidos.
  • --keep-storage indica que estamos removendo registros de construção, não o cache de construção.
  • --force ignora o prompt de confirmação, o que é útil para scripts ou em ambientes onde a interação não é possível.

Após executar o comando, você deverá ver a saída indicando que os registros de construção foram removidos.

Para verificar se todos os registros de construção foram removidos, você pode listar os registros de construção novamente:

docker buildx ls

Você agora deve ver apenas a entrada do construtor padrão e nenhum registro de construção específico listado abaixo dela.

Isso conclui o laboratório sobre o gerenciamento de registros de construção do Docker. Você aprendeu como criar, listar e remover registros de construção.

Resumo

Neste laboratório, você aprendeu como gerenciar registros de construção do Docker usando docker buildx. Você começou criando um Dockerfile simples e, em seguida, usou docker buildx build com a flag --metadata-file para construir uma imagem e gerar um registro de construção, salvando-o em um arquivo JSON. Em seguida, você aprendeu como listar os registros de construção existentes usando o comando docker buildx ls para visualizar informações sobre suas construções.

O laboratório também abordou como remover registros de construção específicos usando docker buildx history rm <record_id> e como remover todos os registros de construção de uma vez usando docker buildx history rm --all. Essas etapas demonstram o gerenciamento do ciclo de vida dos registros de construção dentro do Docker Buildx.