Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dive — 一个用于探索 Docker 镜像中每一层的工具。 | Kitploit
工具/GitHubGitHub/wagoodman/dive
通用工具容器安全
GitHubwagoodman/dive

dive

一个用于探索 Docker 镜像中每一层的工具。

查看仓库
54.4k2.0k721年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

dive

GitHub release Validations Go Report Card License: MIT Donate

一个用于探索 Docker 镜像、层内容以及发现缩小 Docker/OCI 镜像大小方法的工具。

Image

要分析一个 Docker 镜像,只需使用镜像标签/ID/摘要运行 dive:

dive <your-image-tag>

或者你可以直接通过 Docker 使用 dive:

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

# 例如
dive nginx:latest

或者如果你想构建镜像然后直接进行分析:

dive build -t <some-tag> .

在 macOS 上构建(仅支持 Docker 容器引擎):

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> .

此外,你可以在 CI 流程中运行此命令,以确保将浪费的空间降至最低(这会跳过 UI):

CI=true dive <your-image>

Image

这是测试版质量! 如果你想要新功能或发现 bug,请随时提交 issue :)

基本特性

按层显示 Docker 镜像内容

当你在左侧选择一个层时,右侧会显示该层及之前所有层的组合内容。此外,你可以使用方向键完全浏览文件树。

指示每层的变化

文件树中会标出已更改、修改、添加或删除的文件。你可以调整此设置,显示特定层的变化,或累计到当前层的变化。

估算“镜像效率”

左下方面板显示基本层信息和一个实验性指标,该指标将估算你的镜像包含多少浪费的空间。这可能来自跨层重复文件、跨层移动文件或未完全删除文件。同时提供百分比“得分”和总浪费文件空间。

快速构建/分析周期

你可以构建一个 Docker 镜像并通过一条命令立即进行分析: dive build -t some-tag .

你只需将 docker build 命令替换为相同的 dive build 命令即可。

CI 集成

分析镜像并根据镜像效率和浪费空间获得通过/失败结果。在调用任何有效的 dive 命令时,只需在环境中设置 CI=true 即可。

支持多镜像源和容器引擎

使用 --source 选项,你可以选择从何处获取容器镜像:

dive <your-image> --source <source>

或

dive <source>://<your-image>

有效的 source 选项如下:

  • docker:Docker 引擎(默认选项)
  • docker-archive:磁盘上的 Docker Tar 归档
  • podman:Podman 引擎(仅 Linux)

安装

Ubuntu/Debian

使用 deb 包:

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

使用 snap:

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] 如果你通过 apt-get 安装了 Docker,不建议使用 Snap 方法,因为它可能破坏你现有的 Docker 守护进程。

另请参阅:https://github.com/wagoodman/dive/issues/546

RHEL/Centos

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

存在于 extra 仓库 中,可以通过 pacman 安装:

pacman -S dive

Mac

如果你使用 Homebrew:

brew install dive

如果你使用 MacPorts:

sudo port install dive

或者从 releases 页面 下载最新的 Darwin 构建包。

Windows

如果你使用 Chocolatey

choco install dive

如果你使用 scoop

scoop install main/dive

如果你使用 winget:

winget install --id wagoodman.dive

或者从 releases 页面 下载最新的 Windows 构建包。

Go 工具 需要 Go 1.10 或更高版本。

go install github.com/wagoodman/dive@latest

注意:通过这种方式安装,运行 dive -v 时不会看到正确的版本。

Nix/NixOS

在 NixOS 上:

nix-env -iA nixos.dive

在非 NixOS 上(Linux、Mac)

nix-env -iA nixpkgs.dive

X-CMD

x-cmd 是一个 Posix Shell 的工具箱,使用 shell 和 awk 构建的轻量级包管理器。

x env use dive

Docker

docker pull docker.io/wagoodman/dive
# 或者
docker pull ghcr.io/wagoodman/dive

运行时需要包含 Docker socket 文件:

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

Docker for Windows(显示 PowerShell 兼容的换行;为兼容命令提示符,请合并为一行)

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

注意: 根据本地运行的 Docker 版本,你可能需要将 Docker API 版本指定为环境变量:

   DOCKER_API_VERSION=1.37 dive ...

或者如果你使用 Docker 镜像运行:

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...>

如果你使用替代运行时(Colima 等),则可能需要将 Docker 主机指定为环境变量才能拉取本地镜像:

   export DOCKER_HOST=$(docker context inspect -f '{{ .Endpoints.docker.Host }}')

CI 集成

当使用环境变量 CI=true 运行 dive 时,将绕过 dive UI,转而分析你的 Docker 镜像,并通过返回码给出通过/失败指示。目前通过在仓库根目录下放置的 .dive-ci 文件支持三个指标:

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

你可以使用 --ci-config 选项覆盖 CI 配置路径。

键绑定

按键绑定描述
Ctrl + C 或 Q退出
Tab在层视图和文件树视图之间切换
Ctrl + F过滤文件
ESC关闭文件过滤
PageUp 或 U向上翻页
PageDown 或 D向下翻页
Up 或 K在页面内向上移动一行
Down 或 J在页面内向下移动一行
Ctrl + A层视图:查看累计镜像修改
Ctrl + L层视图:查看当前层修改
Space文件树视图:折叠/展开目录
Ctrl + Space文件树视图:折叠/展开所有目录
Ctrl + A文件树视图:显示/隐藏添加的文件
Ctrl + R文件树视图:显示/隐藏删除的文件
Ctrl + M文件树视图:显示/隐藏修改的文件
Ctrl + U文件树视图:显示/隐藏未修改的文件
Ctrl + B文件树视图:显示/隐藏文件属性
PageUp 或 U文件树视图:向上翻页
PageDown 或 D文件树视图:向下翻页

UI 配置

无需配置,但你可以创建配置文件并覆盖值:

# 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
下载工具