![Orkes manterá o projeto Conductor enquanto a Netflix recua](https://optimuscloud.com.br/wp-content/uploads/2024/01/Orkes-mantera-o-projeto-Conductor-enquanto-a-Netflix-recua-150x150.png)
Orkes manterá o projeto Conductor enquanto a Netflix recua
24 de janeiro de 2024![Microsserviços orientados a eventos oferecem flexibilidade e capacidade de resposta em tempo real](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706098132_Microsservicos-orientados-a-eventos-oferecem-flexibilidade-e-capacidade-de-resposta-150x150.jpg)
Microsserviços orientados a eventos oferecem flexibilidade e capacidade de resposta em tempo real
24 de janeiro de 2024Você já quis conhecer as peças que compõem uma imagem Docker, sem ter que construir primeiro uma lista de materiais de software completa? Talvez você não queira apenas visualizar o conteúdo, mas também encontrar maneiras de diminuir o tamanho dessas imagens?
Para fazer isso, você precisa saber coisas como camadas, detalhes das camadas, o conteúdo de cada camada e detalhes da imagem.
Parece um trabalho árduo, não é?
Com a ajuda de um aplicativo chamado Dive, o processo é bastante simples.
O mergulho inclui os seguintes recursos:
- Detalhamento do conteúdo da imagem
- Exibe detalhes do conteúdo de cada camada
- Exibe o tamanho total da imagem que está sendo examinada
- Exibe o espaço desperdiçado na imagem (menor = melhor)
- Exibe a pontuação de eficiência de uma imagem (maior = melhor)
Essas são informações bastante importantes para ter ao seu alcance, especialmente para um desenvolvedor que está tentando criar imagens Docker que sejam tão eficientes e seguras quanto possível. Você certamente não deseja incluir aplicativos desnecessários nas camadas de suas imagens, e o Dive é uma ótima maneira de discernir exatamente o que está lá.
Vamos instalar o Dive.
O que você precisará
O Dive pode ser instalado no Ubuntu, Red Hat Enterprise Linux e distribuições baseadas em Arch, bem como em MacOS e Windows. Vou demonstrar o processo no Ubuntu 22.04. Se você usar um sistema operacional diferente, precisará alterar o processo de instalação do Docker e do Dive. Para MacOS, o Dive pode ser instalado com Homebrew ou MacPorts e, no Windows, o Dive pode ser instalado com um arquivo de instalação baixado para o sistema operacional.
Instalando o Docker
Para examinar uma imagem com o Dive, você deve primeiro poder extraí-la com o Docker (a menos que planeje criar suas próprias imagens do Docker… o que significa que você precisará do Docker instalado de qualquer maneira). Veja como você pode instalar o mecanismo de tempo de execução Docker no Ubuntu 22.04.
Primeiro, você deve baixar e instalar a chave oficial do Docker GPG (para poder instalar o software). Para fazer isso, faça login em sua instância do Ubuntu, abra uma janela de terminal e emita o comando:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Com a chave GPG adicionada, é hora de criar o repositório Docker adequado, o que pode ser feito com o seguinte comando:
echo "deb (arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg) https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Agora que o repositório foi adicionado corretamente, instalaremos algumas dependências com o comando:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
Antes de podermos instalar o Docker, devemos agora atualizar o apt com:
sudo apt-get update
Instale o Docker com o comando:
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Para permitir que seu usuário trabalhe com o Docker (sem precisar usar o sudo, o que pode ser um problema de segurança), você deve adicionar o usuário ao grupo docker com o comando:
sudo usermod -aG docker $USER
Saia e faça login novamente para que as alterações tenham efeito.
Instalando o mergulho
Agora é hora de instalar o Dive. No Ubuntu, isso também é feito na linha de comando. Existem três comandos para usar.
O primeiro comando define a versão mais recente do mergulho para uma variável de ambiente chamada DIVE_VERSION. Esse comando é:
export DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v((^")+)".*/1/')
A seguir, baixamos a versão mais recente com o comando:
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
O comando acima irá baixar um arquivo .deb para o diretório de trabalho atual. Você pode então instalar o Dive com:
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb
Quando a instalação for concluída, você estará pronto para testar o aplicativo.
Usando mergulho
Com o Dive e o Docker instalados, o Dive é capaz não apenas de mergulhar em uma imagem de contêiner, mas também de extrair a imagem.
Digamos que você queira examinar a imagem mais recente do Alpine Docker. O comando para isso seria:
dive alpine:latest
Assim que as imagens forem extraídas, o Dive exibirá o conteúdo das imagens, mostrando cada camada e o conteúdo dentro dela (Figura 1).
-
Figura 1: A ferramenta Dive mostrando as camadas da última imagem Alpine.
O Dive extrai automaticamente a imagem do Docker Hub. Você pode definir uma fonte diferente usando a opção source, assim:
dive IMAGE --source SOURCE
Onde IMAGE é o nome da imagem que você deseja extrair e SOURCE é o local do repositório.
Para sair do Dive, use a combinação de teclado (Ctr)+(C).
Digamos que você queira examinar a imagem do MongoDB. Faça isso com o comando:
dive mongo:latest
Dado que esta é uma imagem muito mais complicada, você encontrará múltiplas camadas. Você pode navegar entre as camadas com as teclas do cursor. A camada atualmente selecionada será indicada por um pequeno quadrado roxo (Figura 2).
-
Figura 2: mergulhamos na imagem mais recente do MongoDB e encontramos diversas camadas.
Se você pressionar a tecla Tab, moverá o cursor para o painel direito, onde poderá usar as teclas do cursor para navegar na hierarquia de camadas.
No painel inferior esquerdo, você verá informações sobre espaço desperdiçado e eficiência de imagem. Se esta for uma imagem personalizada e esses detalhes não forem satisfatórios, você precisará trabalhar um pouco na imagem, reconstruí-la e mergulhar novamente.
E isso é basicamente o básico do uso da ferramenta Dive para visualizar o conteúdo de qualquer imagem Docker. Esperamos que este aplicativo de linha de comando o ajude a criar imagens mais eficientes e seguras (ou pelo menos a entender exatamente o que compõe as imagens que você usa).
O post Dive: um aplicativo simples para visualizar o conteúdo de uma imagem Docker apareceu pela primeira vez em The New Stack.