Ferramenta para explorar imagens Docker e o conteúdo das camadas: 'Dive'
(github.com/wagoodman)Ferramenta de exploração de imagens Docker dive
- Análise de imagens Docker: é possível analisar imagens Docker usando o comando
divee a tag/ID/digest da imagem. - Uso direto como comando Docker: é possível configurar um
aliaspara usardivediretamente como um comando do Docker. - Build no Macbook: em Macbooks que suportam apenas o Docker container engine, é possível usar o
divepara fazer build e analisar imagens. - Integração com pipeline de CI: ao definir a variável de ambiente
CI=true, é possível analisar imagens sem UI e minimizar desperdício de espaço.
Recursos básicos
- Exibição do conteúdo da imagem Docker por camada: é possível verificar, à direita, o conteúdo da camada selecionada e o conteúdo combinado com as camadas anteriores.
- Exibição das mudanças em cada camada: mostra, na árvore de arquivos, os arquivos alterados, modificados, adicionados ou removidos.
- Estimativa da "eficiência da imagem": estima a quantidade de espaço desperdiçado incluído na imagem, fornecendo uma pontuação de eficiência e o espaço de arquivos desperdiçado.
- Ciclo rápido de build/análise: com o comando
dive build -t some-tag ., é possível fazer o build da imagem Docker e analisá-la imediatamente. - Suporte a várias fontes de imagem e container engines: com a opção
--source, é possível escolher de onde obter a imagem de contêiner.
Como instalar
- Ubuntu/Debian: instalar o
diveusandocurleapt. - RHEL/Centos: instalar o
diveusandocurlerpm. - Arch Linux: instalação disponível via
pacman. - Mac: usar Homebrew ou MacPorts, ou baixar o build para Darwin na página de releases.
- Windows: baixar a release mais recente.
- Go tools: requer Go versão 1.10 ou superior, com instalação via
go get. - Nix/NixOS: usar
nix-envpara instalar. - Docker: obter a imagem com
docker pulle executar incluindo o arquivo do socket do Docker.
Integração com CI
- Definir a variável de ambiente
CI=true: analisa a imagem Docker sem UI e indica aprovação/falha pelo código de retorno. - Configuração de regras via arquivo
.dive-ci: permite definir critérios de aprovação/falha com base em eficiência, quantidade de espaço desperdiçado e proporção.
Atalhos de teclado
- É possível manipular as visualizações de camadas e da árvore de arquivos na UI por meio de vários atalhos de teclado.
Configuração da UI
- É possível alterar o comportamento do
divepersonalizando várias opções por meio de um arquivo de configuração.
Opinião do GN⁺
- Importância:
diveé uma ferramenta muito útil para otimizar o tamanho das imagens Docker e reduzir desperdícios. Isso pode contribuir para a redução de custos de infraestrutura em nuvem e para uma gestão mais eficiente de recursos. - Interessante: a possibilidade de analisar detalhadamente cada camada de uma imagem Docker e verificar visualmente as alterações é um recurso muito interessante para desenvolvedores e administradores de sistemas.
- Útil: ao integrar o
diveao pipeline de CI/CD, é possível promover controle contínuo de qualidade e ganhos de eficiência por meio de análise automatizada de imagens.
1 comentários
Opiniões no Hacker News
Crane e a biblioteca go-containerregistry
A utilidade do Dive
Um aspecto oculto do Dive
Pergunta sobre o uso de GoLang
A praticidade do Dive
A ferramenta container-diff do Google
Outras ótimas ferramentas TUI de terminal
Por que o Docker usa arquivos tar
O efeito impressionante do Dive