Introdução
Neste laboratório, você aprenderá como gerenciar e alternar entre diferentes instâncias de construtor Docker usando o comando docker buildx use. Começaremos criando múltiplas instâncias de construtor para ter opções para construir imagens Docker.
Após a criação dessas instâncias, você aprenderá como listar todas as instâncias de construtor disponíveis para visualizar seus detalhes e status. O cerne deste laboratório se concentrará então em usar o comando docker buildx use para alternar para uma instância de construtor específica para suas operações de construção. Finalmente, você explorará como definir um construtor como o padrão para seu contexto atual e como configurar um construtor para persistir as mudanças de contexto.
Criar múltiplas instâncias de construtor
Nesta etapa, aprenderemos como criar múltiplas instâncias de construtor usando o Docker. As instâncias de construtor são usadas para construir imagens Docker. Por padrão, o Docker usa uma única instância de construtor. No entanto, você pode criar múltiplas instâncias de construtor para melhorar o desempenho da construção ou para usar diferentes configurações de construção.
Primeiro, vamos verificar as instâncias de construtor atuais.
docker buildx ls
Você deve ver uma instância de construtor padrão. Agora, vamos criar uma nova instância de construtor chamada mybuilder1.
docker buildx create --name mybuilder1
Este comando cria uma nova instância de construtor. Você pode verificar se a nova instância foi criada listando as instâncias de construtor novamente.
docker buildx ls
Você agora deve ver tanto o construtor padrão quanto mybuilder1.
Vamos criar outra instância de construtor chamada mybuilder2.
docker buildx create --name mybuilder2
Novamente, verifique a criação da nova instância.
docker buildx ls
Você agora deve ver o construtor padrão, mybuilder1 e mybuilder2.
Listar as instâncias de construtor disponíveis
Na etapa anterior, criamos múltiplas instâncias de construtor. Nesta etapa, focaremos em listar essas instâncias de construtor disponíveis para ver seu status e detalhes.
O comando para listar as instâncias de construtor é docker buildx ls. Este comando fornece informações sobre todas as instâncias de construtor que estão disponíveis em seu sistema.
Vamos executar o comando novamente para ver as instâncias de construtor que criamos na etapa anterior.
docker buildx ls
A saída mostrará uma tabela com colunas como NAME, DRIVER, ENDPOINT, STATUS e BUILDER.
NAME: O nome da instância do construtor.DRIVER: O driver usado pela instância do construtor (por exemplo,docker-container).ENDPOINT: O endpoint ao qual o construtor está conectado.STATUS: O status atual da instância do construtor (por exemplo,running,stopped).BUILDER: Indica se este é o construtor atual em uso.
Você deve ver o construtor padrão, mybuilder1 e mybuilder2 listados na saída. A coluna STATUS para os construtores que você criou deve mostrar running se eles foram iniciados automaticamente, ou stopped caso contrário.
Este comando é útil para verificar quais construtores estão disponíveis e seu estado atual antes de alternar ou usá-los para construir imagens.
Alternar para uma instância de construtor específica
Nesta etapa, aprenderemos como alternar para uma instância de construtor específica. Quando você tem múltiplas instâncias de construtor, pode escolher qual usar para construir suas imagens Docker.
Para alternar para uma instância de construtor específica, você usa o comando docker buildx use seguido pelo nome da instância do construtor.
Vamos alternar para a instância mybuilder1 que criamos nas etapas anteriores.
docker buildx use mybuilder1
Após executar este comando, a instância mybuilder1 será o construtor ativo para o seu contexto Docker atual.
Você pode verificar qual construtor está atualmente ativo listando as instâncias de construtor novamente. O construtor ativo será marcado com um asterisco (*) na coluna BUILDER.
docker buildx ls
Você deve ver um asterisco ao lado de mybuilder1 na saída, indicando que ele é o construtor atualmente ativo.
Agora, vamos alternar para a instância mybuilder2.
docker buildx use mybuilder2
Verifique se mybuilder2 é agora o construtor ativo.
docker buildx ls
Você deve ver o asterisco ao lado de mybuilder2.
Alternar entre as instâncias de construtor permite que você utilize facilmente diferentes ambientes de construção ou configurações conforme necessário.
Definir um construtor como padrão para o contexto atual
Na etapa anterior, aprendemos como alternar para uma instância de construtor específica para a sessão atual. Nesta etapa, aprenderemos como definir uma instância de construtor como o padrão para o contexto Docker atual. Isso significa que sempre que você usar comandos Docker dentro deste contexto, o construtor especificado será usado automaticamente.
Para definir um construtor como o padrão para o contexto atual, você usa o comando docker buildx use com a flag --default, seguido pelo nome da instância do construtor.
Vamos definir mybuilder1 como o construtor padrão para o contexto atual.
docker buildx use --default mybuilder1
Após executar este comando, mybuilder1 será o construtor padrão para este contexto.
Você pode verificar isso listando as instâncias de construtor. O construtor padrão será marcado com um asterisco (*) e também indicado como default na saída.
docker buildx ls
Você deve ver mybuilder1 marcado como o construtor ativo (com *) e também como o construtor padrão.
Agora, vamos definir mybuilder2 como o construtor padrão.
docker buildx use --default mybuilder2
Verifique se mybuilder2 é agora o construtor padrão.
docker buildx ls
Você deve ver mybuilder2 marcado como ativo e padrão.
Definir um construtor padrão é útil quando você deseja usar consistentemente um construtor específico para seus projetos dentro de um contexto Docker específico.
Definir um construtor para persistir as alterações de contexto
Nas etapas anteriores, aprendemos como alternar para um construtor e definir um construtor padrão para o contexto atual. No entanto, essas mudanças podem não persistir em diferentes sessões de terminal ou reinicializações do sistema, dependendo da sua configuração do Docker. Nesta etapa, exploraremos como garantir que o construtor escolhido permaneça o padrão, mesmo após fechar e reabrir seu terminal ou reiniciar o daemon do Docker.
O comando docker buildx use --default define o construtor padrão para o contexto Docker atual. Essa configuração geralmente é armazenada no arquivo de configuração do Docker. Para garantir que essa alteração persista, você normalmente não precisa de um comando extra além de definir o padrão. A flag --default foi projetada para tornar a alteração persistente para aquele contexto específico.
Vamos reconfirmar que mybuilder2 está definido como o construtor padrão.
docker buildx ls
Você ainda deve ver mybuilder2 marcado como o construtor padrão.
A persistência dessa configuração depende do gerenciamento de configuração do Docker. Quando você usa docker buildx use --default, o Docker atualiza sua configuração para refletir essa escolha para o contexto ativo. Essa configuração é carregada quando o Docker inicia, garantindo que seu construtor preferido seja usado por padrão.
Embora não haja um comando separado especificamente para "persistir" a alteração além de usar --default, é importante entender que a flag --default lida com essa persistência dentro do contexto Docker.
Para realmente testar a persistência, você normalmente reiniciaria o daemon do Docker ou abriria uma nova sessão de terminal e verificaria o construtor padrão novamente usando docker buildx ls. Neste ambiente de laboratório, a flag --default é suficiente para demonstrar o comportamento pretendido de definir um padrão persistente para o contexto atual.
Resumo
Neste laboratório, aprendemos a gerenciar instâncias de construtor Docker usando o comando docker buildx. Começamos criando múltiplas instâncias de construtor, demonstrando como adicionar novos construtores além do padrão. Em seguida, praticamos a listagem dessas instâncias de construtor disponíveis usando docker buildx ls para visualizar seus nomes, drivers, endpoints e status. Esta etapa é crucial para entender os ambientes de construção disponíveis.



