Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dive — Uma ferramenta para explorar cada camada em uma imagem Docker. | Kitploit
Ferramentas/GitHubGitHub/wagoodman/dive
Utilitários de Propósito GeralSegurança de Contêineres
GitHubwagoodman/dive

dive

Uma ferramenta para explorar cada camada em uma imagem Docker.

Ver Repositório
54.4k2.0khá 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

dive

GitHub release Validations Go Report Card License: MIT Donate

Uma ferramenta para explorar uma imagem Docker, conteúdos de camadas e descobrir maneiras de reduzir o tamanho da sua imagem Docker/OCI.

Image

Para analisar uma imagem Docker, basta executar dive com uma tag/id/digest da imagem:

root@kitploit:~
dive <your-image-tag>

ou você pode usar dive diretamente com o Docker:

root@kitploit:~
alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock docker.io/wagoodman/dive"
dive <your-image-tag>

# for example
dive nginx:latest

ou se você quiser construir sua imagem e ir direto para a análise:

root@kitploit:~
dive build -t <some-tag> .

Construindo no macOS (suportando apenas o mecanismo de contêiner Docker):

root@kitploit:~
docker run --rm -it \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v  "$(pwd)":"$(pwd)" \
      -w "$(pwd)" \
      -v "$HOME/.dive.yaml":"$HOME/.dive.yaml" \
      docker.io/wagoodman/dive:latest build -t <some-tag> .

Além disso, você pode executar isso em seu pipeline de CI para garantir que está mantendo o espaço desperdiçado ao mínimo (isso pula a interface):

root@kitploit:~
CI=true dive <your-image>

Image

Esta é uma versão beta! Sinta-se à vontade para abrir uma issue se quiser um novo recurso ou encontrar um bug :)

Basic Features

Mostrar conteúdos da imagem Docker divididos por camada

Ao selecionar uma camada à esquerda, você vê os conteúdos dessa camada combinados com todas as camadas anteriores à direita. Além disso, você pode explorar completamente a árvore de arquivos com as teclas de seta.

Indicar o que mudou em cada camada

Arquivos que foram alterados, modificados, adicionados ou removidos são indicados na árvore de arquivos. Isso pode ser ajustado para mostrar mudanças de uma camada específica ou mudanças agregadas até essa camada.

Estimar "eficiência da imagem"

O painel inferior esquerdo mostra informações básicas da camada e uma métrica experimental que estima quanto espaço desperdiçado sua imagem contém. Isso pode ser devido à duplicação de arquivos entre camadas, movimentação de arquivos entre camadas ou remoção incompleta de arquivos. Tanto uma 'pontuação' percentual quanto o espaço total desperdiçado são fornecidos.

Ciclos rápidos de construção/análise

Você pode construir uma imagem Docker e fazer uma análise imediata com um comando: dive build -t some-tag .

Você só precisa substituir seu comando docker build pelo mesmo comando dive build.

Integração CI

Analise uma imagem e obtenha um resultado de aprovação/reprovação baseado na eficiência da imagem e espaço desperdiçado. Basta definir CI=true no ambiente ao invocar qualquer comando dive válido.

Múltiplas Fontes de Imagem e Mecanismos de Contêiner Suportados

Com a opção --source, você pode selecionar de onde buscar a imagem do contêiner:

root@kitploit:~
dive <your-image> --source <source>

ou

root@kitploit:~
dive <source>://<your-image>

Com opções source válidas como:

  • docker: mecanismo Docker (a opção padrão)
  • docker-archive: um arquivo Tar Docker do disco
  • podman: mecanismo Podman (apenas linux)

Installation

Ubuntu/Debian

Usando debs:

root@kitploit:~
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -fOL "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb"
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb

Usando snap:

root@kitploit:~
sudo snap install docker
sudo snap install dive
sudo snap connect dive:docker-executables docker:docker-executables
sudo snap connect dive:docker-daemon docker:docker-daemon

[!CAUTION] O método Snap não é recomendado se você instalou o Docker via apt-get, pois pode quebrar seu daemon Docker existente.

Veja também: https://github.com/wagoodman/dive/issues/546

RHEL/Centos

root@kitploit:~
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -fOL "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm"
rpm -i dive_${DIVE_VERSION}_linux_amd64.rpm

Arch Linux

Disponível no repositório extra e pode ser instalado via pacman:

root@kitploit:~
pacman -S dive

Mac

Se você usa Homebrew:

root@kitploit:~
brew install dive

Se você usa MacPorts:

root@kitploit:~
sudo port install dive

Ou baixe a última compilação Darwin da página de releases.

Windows

Se você usa Chocolatey

root@kitploit:~
choco install dive

Se você usa scoop

root@kitploit:~
scoop install main/dive

Se você usa winget:

root@kitploit:~
winget install --id wagoodman.dive

Ou baixe a última compilação Windows da página de releases.

Go tools Requer Go versão 1.10 ou superior.

root@kitploit:~
go install github.com/wagoodman/dive@latest

Nota: instalando desta forma você não verá uma versão adequada ao executar dive -v.

Nix/NixOS

No NixOS:

root@kitploit:~
nix-env -iA nixos.dive

Em não-NixOS (Linux, Mac)

root@kitploit:~
nix-env -iA nixpkgs.dive

X-CMD

x-cmd é uma caixa de ferramentas para Posix Shell, oferecendo um gerenciador de pacotes leve construído usando shell e awk.

root@kitploit:~
x env use dive

Docker

root@kitploit:~
docker pull docker.io/wagoodman/dive
# ou alternativamente
docker pull ghcr.io/wagoodman/dive

Ao executar, você precisará incluir o arquivo de socket Docker:

root@kitploit:~
docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    docker.io/wagoodman/dive:latest <dive arguments...>

Docker para Windows (mostrando quebras de linha compatíveis com PowerShell; colapse em uma única linha para compatibilidade com Command Prompt)

root@kitploit:~
docker run --rm -it `
    -v /var/run/docker.sock:/var/run/docker.sock `
    docker.io/wagoodman/dive:latest <dive arguments...>

Nota: dependendo da versão do docker que você está executando localmente, pode ser necessário especificar a versão da API do docker como uma variável de ambiente:

root@kitploit:~
   DOCKER_API_VERSION=1.37 dive ...

ou se você estiver executando com uma imagem docker:

root@kitploit:~
docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e DOCKER_API_VERSION=1.37 \
    docker.io/wagoodman/dive:latest <dive arguments...>

se você estiver usando um runtime alternativo (Colima etc), então pode ser necessário especificar o host docker como uma variável de ambiente para puxar imagens locais:

root@kitploit:~
   export DOCKER_HOST=$(docker context inspect -f '{{ .Endpoints.docker.Host }}')

CI Integration

Ao executar dive com a variável de ambiente CI=true, a interface do dive será ignorada e, em vez disso, analisará sua imagem docker, dando uma indicação de aprovação/reprovação através do código de retorno. Atualmente, há três métricas suportadas através de um arquivo .dive-ci que você pode colocar na raiz do seu repositório:

root@kitploit:~
rules:
  # If the efficiency is measured below X%, mark as failed.
  # Expressed as a ratio between 0-1.
  lowestEfficiency: 0.95

  # If the amount of wasted space is at least X or larger than X, mark as failed.
  # Expressed in B, KB, MB, and GB.
  highestWastedBytes: 20MB

  # If the amount of wasted space makes up for X% or more of the image, mark as failed.
  # Note: the base image layer is NOT included in the total image size.
  # Expressed as a ratio between 0-1; fails if the threshold is met or crossed.
  highestUserWastedPercent: 0.20

Você pode sobrescrever o caminho do config CI com a opção --ci-config.

KeyBindings

UI Configuration

Nenhuma configuração é necessária, no entanto, você pode criar um arquivo de configuração e sobrescrever valores:

root@kitploit:~
# supported options are "docker" and "podman"
container-engine: docker
# continue with analysis even if there are errors parsing the image archive
ignore-errors: false
log:
  enabled: true
  path: ./dive.log
  level: info

# Note: you can specify multiple bindings by separating values with a comma.
# Note: UI hinting is derived from the first binding
keybinding:
  # Global bindings
  quit: ctrl+c
  toggle-view: tab
  filter-files: ctrl+f, ctrl+slash
  close-filter-files: esc
  up: up,k
  down: down,j
  left: left,h
  right: right,l

  # Layer view specific bindings
  compare-all: ctrl+a
  compare-layer: ctrl+l

  # File view specific bindings
  toggle-collapse-dir: space
  toggle-collapse-all-dir: ctrl+space
  toggle-added-files: ctrl+a
  toggle-removed-files: ctrl+r
  toggle-modified-files: ctrl+m
  toggle-unmodified-files: ctrl+u
  toggle-filetree-attributes: ctrl+b
  page-up: pgup,u
  page-down: pgdn,d

diff:
  # You can change the default files shown in the filetree (right pane). All diff types are shown by default.
  hide:
    - added
    - removed
    - modified
    - unmodified

filetree:
  # The default directory-collapse state
  collapse-dir: false

  # The percentage of screen width the filetree should take on the screen (must be >0 and <1)
  pane-width: 0.5

  # Show the file attributes next to the filetree
  show-attributes: true

layer:
  # Enable showing all changes from this layer and every previous layer
  show-aggregated-changes: false

dive procurará configurações nos seguintes locais:

  • $XDG_CONFIG_HOME/dive/*.yaml
  • $XDG_CONFIG_DIRS/dive/*.yaml
  • ~/.config/dive/*.yaml
  • ~/.dive.yaml

.yml pode ser usado no lugar de .yaml se desejado.

Baixar ferramenta
Key BindingDescription
Ctrl + C or QSair
TabAlternar entre as visualizações de camada e árvore de arquivos
Ctrl + FFiltrar arquivos
ESCFechar filtro de arquivos
PageUp or URolar uma página para cima
PageDown or DRolar uma página para baixo
Up or KMover uma linha para cima dentro de uma página
Down or JMover uma linha para baixo dentro de uma página
Ctrl + AVisualização de camada: ver modificações agregadas da imagem
Ctrl + LVisualização de camada: ver modificações da camada atual
SpaceVisualização da árvore de arquivos: colapsar/expandir um diretório
Ctrl + SpaceVisualização da árvore de arquivos: colapsar/expandir todos os diretórios
Ctrl + AVisualização da árvore de arquivos: mostrar/esconder arquivos adicionados
Ctrl + RVisualização da árvore de arquivos: mostrar/esconder arquivos removidos
Ctrl + MVisualização da árvore de arquivos: mostrar/esconder arquivos modificados
Ctrl + UVisualização da árvore de arquivos: mostrar/esconder arquivos não modificados
Ctrl + BVisualização da árvore de arquivos: mostrar/esconder atributos de arquivos
PageUp or UVisualização da árvore de arquivos: rolar uma página para cima
PageDown or DVisualização da árvore de arquivos: rolar uma página para baixo