Introdução
Neste laboratório, você aprenderá como utilizar o comando docker buildx history export para gerenciar e exportar o histórico de construção (build history) do Docker. Começaremos construindo uma imagem Docker simples e examinando seu histórico de construção usando o comando docker history.
Em seguida, você aprenderá como exportar o histórico de construção de uma imagem específica para um arquivo. Finalmente, exploraremos como exportar todos os registros de construção (build records) para um determinado builder, fornecendo uma visão geral abrangente de suas atividades de construção. Este laboratório irá equipá-lo com as habilidades necessárias para rastrear e gerenciar efetivamente seus processos de construção de imagens Docker.
Construa uma imagem simples e visualize seu histórico
Nesta etapa, aprenderemos como construir uma imagem Docker simples e visualizar seu histórico. Construir uma imagem Docker envolve a criação de um Dockerfile, que é um arquivo de texto que contém todos os comandos que um usuário poderia chamar na linha de comando para montar uma imagem.
Primeiro, navegue para o diretório ~/project se você ainda não estiver lá.
cd ~/project
Agora, vamos criar um Dockerfile simples. Criaremos um arquivo chamado Dockerfile no diretório ~/project.
nano Dockerfile
Adicione o seguinte conteúdo ao Dockerfile:
FROM ubuntu:latest
RUN echo "Hello, Docker!" > /app/hello.txt
CMD ["cat", "/app/hello.txt"]
Este Dockerfile faz o seguinte:
FROM ubuntu:latest: Esta linha especifica a imagem base para nossa nova imagem. Estamos usando a versão mais recente da imagem Ubuntu do Docker Hub.RUN echo "Hello, Docker!" > /app/hello.txt: Esta linha executa um comando durante o processo de construção da imagem. Ele cria um diretório/appe escreve o texto "Hello, Docker!" em um arquivo chamadohello.txtdentro desse diretório.CMD ["cat", "/app/hello.txt"]: Esta linha especifica o comando padrão a ser executado quando um contêiner é iniciado a partir desta imagem. Ele executará o comandocat /app/hello.txt, que imprimirá o conteúdo do arquivohello.txt.
Salve o arquivo e saia do editor nano (Pressione Ctrl + X, depois Y, depois Enter).
Agora, vamos construir a imagem Docker usando o comando docker build. Vamos marcar a imagem com o nome my-hello-image e a tag latest. O . no final do comando indica que o Dockerfile está localizado no diretório atual.
docker build -t my-hello-image:latest .
Você verá uma saída indicando o processo de construção, mostrando cada etapa sendo executada.
Depois que a imagem for construída, você pode visualizar o histórico da imagem usando o comando docker history. Este comando mostra as camadas que compõem a imagem e os comandos que foram usados para criar cada camada.
docker history my-hello-image:latest
A saída mostrará uma tabela com informações sobre cada camada, incluindo o ID da camada, o comando usado, o tempo de criação e o tamanho. Este histórico é útil para entender como uma imagem foi construída e para depurar problemas de construção.
Exportar o histórico de construção para um arquivo
Na etapa anterior, visualizamos o histórico de construção de nossa imagem Docker diretamente no terminal. Nesta etapa, aprenderemos como exportar este histórico de construção para um arquivo para análise ou compartilhamento posterior.
Podemos redirecionar a saída do comando docker history para um arquivo usando o operador de redirecionamento de saída padrão >. Vamos exportar o histórico da imagem my-hello-image:latest para um arquivo chamado history.txt no diretório ~/project.
Certifique-se de estar no diretório ~/project:
cd ~/project
Agora, execute o seguinte comando para exportar o histórico:
docker history my-hello-image:latest > history.txt
Este comando executará docker history my-hello-image:latest e, em vez de exibir a saída na tela, ele escreverá a saída no arquivo history.txt.
Você pode verificar se o arquivo foi criado e contém o histórico de construção visualizando seu conteúdo usando o comando cat:
cat history.txt
Você deve ver as mesmas informações do histórico de construção que viu na etapa anterior, mas agora elas estão armazenadas no arquivo history.txt. Este arquivo pode ser facilmente compartilhado ou usado para fins de documentação.
Exportar o histórico de construção para um arquivo é uma prática útil para manter registros de como suas imagens Docker são construídas, o que pode ser útil para depuração, auditoria e colaboração.
Exportar todos os registros de construção para o builder
Nas etapas anteriores, construímos uma imagem Docker e exportamos seu histórico. Docker BuildKit, o construtor padrão para Docker, mantém registros de todas as operações de construção. Nesta etapa, aprenderemos como exportar todos esses registros de construção.
Para exportar todos os registros de construção, podemos usar o comando docker buildx build com a flag --metadata-file. Esta flag nos permite especificar um arquivo onde os metadados da construção, incluindo os registros de construção, serão escritos em formato JSON.
Primeiro, certifique-se de estar no diretório ~/project:
cd ~/project
Agora, vamos construir a imagem novamente, mas desta vez exportaremos os metadados da construção para um arquivo chamado build-records.json. Usaremos o mesmo Dockerfile que criamos na primeira etapa.
docker buildx build --metadata-file build-records.json -t my-hello-image:latest .
O comando docker buildx build faz parte do plugin Docker Buildx, que fornece recursos de construção aprimorados. A flag --metadata-file build-records.json informa ao BuildKit para escrever os metadados da construção no arquivo especificado.
Após a conclusão da construção, um arquivo chamado build-records.json será criado no diretório ~/project. Este arquivo contém informações detalhadas sobre o processo de construção em formato JSON.
Você pode visualizar o conteúdo do arquivo build-records.json usando o comando cat:
cat build-records.json
A saída será um objeto JSON contendo vários detalhes sobre a construção, incluindo informações sobre as etapas de construção, a imagem resultante e outros metadados. Este registro abrangente pode ser valioso para análise avançada, automação e integração com outras ferramentas.
Exportar registros de construção fornece uma visão mais detalhada do processo de construção em comparação com apenas o histórico da imagem, oferecendo insights sobre a execução de cada etapa de construção e as dependências envolvidas.
Resumo
Neste laboratório, aprendemos como construir uma imagem Docker simples, criando um Dockerfile com instruções para o processo de construção, incluindo a especificação de uma imagem base, a execução de comandos durante a construção e a definição do comando padrão para contêineres. Em seguida, usamos o comando docker build para criar a imagem e a marcamos para fácil identificação.
Após a construção da imagem, exploramos como visualizar o histórico da imagem usando o comando docker history, que fornece informações sobre as camadas e os comandos usados para construir a imagem. O laboratório então nos guiou através da exportação do histórico de construção de uma imagem específica para um arquivo usando docker buildx history export e, subsequentemente, exportando todos os registros de construção para o construtor atual, demonstrando como preservar e revisar os detalhes da construção.



