5 分钟小工具:使用 dive 分析 docker 镜像

巴辉特 2024年3月12日

需求

拿到一个镜像之后,我想知道:

  • 分层查看镜像里都有哪些文件
  • 各层使用了什么命令构建的这个镜像
  • 镜像里比较大的文件有哪些(可能需要优化)

dive 工具介绍

dive 工具可以做这些分析。dive 的 github 地址是 wagoodman/dive,小巧玲珑,MIT 开源协议,42.9k 的 star。它的介绍是这么一句话:

A tool for exploring each layer in a docker image

其分析效果大概如下:

10db0dd9-dive-demo

安装 dive

可以使用镜像安装:

docker pull wagoodman/dive:latest
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest <your_image>

也可以使用二进制安装:

  • 下载地址:https://github.com/wagoodman/dive/releases
  • 最新版本:v0.12.0

下载之后解压缩,里边只有一个二进制文件,直接使用即可,比如分析夜莺的镜像:

./dive flashcatcloud/nightingale:latest

按键盘上面的上下移动键,即可查看不同的分层的信息,右侧会展示当前分层的文件,左侧中间位置展示当前分层的详情,最下面展示镜像评分,展示了一些可能的大文件。

enjoy :-)


本公众号主理人:秦晓辉,极客时间《运维监控系统实战笔记》作者,Open-Falcon、夜莺、Categraf、Cprobe 等开源项目的创始人,当前在创业,为客户提供可观测性相关的产品。如下是我们两款核心产品,欢迎访问我们的官网了解详情:

我们主要提供两款产品:

20240307192910

欢迎加我好友,交流可观测性相关话题或了解我们的商业产品,如下是我的联系方式,加好友请备注您的公司、姓名、来意 🤝

20240307193146

扩展阅读:

标签: Docker
开源版
Flashcat
Flashduty