镜像分层分析工具之dive

举报
kaliarch 发表于 2022/03/12 10:18:37 2022/03/12
【摘要】 镜像分层分析工具之dive 前言我们知道Docker的镜像是由一层一层联合文件系统构成,在Dockerfile中,每写一层就对应镜像中的一层,那么我们如果对已经制作好的镜像进行分层的查看和审核,以及后期的优化呢,dive就是一款镜像分层分析工具,可以帮助我们去实现。 一 dive简介 1.1 简介用于探索 Docker 映像、图层内容和发现缩小 Docker/OCI 映像大小的方法的工具。...

镜像分层分析工具之dive

前言

我们知道Docker的镜像是由一层一层联合文件系统构成,在Dockerfile中,每写一层就对应镜像中的一层,那么我们如果对已经制作好的镜像进行分层的查看和审核,以及后期的优化呢,dive就是一款镜像分层分析工具,可以帮助我们去实现。

一 dive简介

1.1 简介

用于探索 Docker 映像、图层内容和发现缩小 Docker/OCI 映像大小的方法的工具。

1.2 特性

  • 显示按层分解的 Docker 图像内容

当您选择左侧的图层时,您会看到该图层的内容以及右侧的所有先前图层。此外,您可以使用箭头键全面探索文件树。

  • 指出每一层的变化

已更改、修改、添加或删除的文件在文件树中显示。这可以调整以显示特定层的更改,或聚合到该层的更改。

  • 估计“图像效率”

左下方的面板显示了基本的图层信息和一个实验性的指标,来猜测你的图片包含了多少浪费的空间。这可能是由于跨层复制文件,跨层移动文件,或者没有完全删除文件。提供了百分比“得分”和总浪费的文件空间

  • 快速构建/分析周期

您可以使用一个命令构建 Docker 映像并立即进行分析:dive build -t some-tag。 您只需要用相同的潜水构建命令替换您的 docker build 命令。

  • CI 集成

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

二 安装

  • RHEL/CentOS
curl -OL https://github.com/wagoodman/dive/releases/download/v0.9.2/dive_0.9.2_linux_amd64.rpm
rpm -i dive_0.9.2_linux_amd64.rpm
  • Mac
brew install dive

三 使用

  • KeyBindings
Key Binding Description
Ctrl + C 退出
Tab or Ctrl + Space 在图层和文件树视图之间切换
Ctrl + F 过滤文件
Ctrl + A 图层视图:查看聚合图像修改
Ctrl + L 图层视图:查看当前图层修改
Space Filetree视图:折叠/取消折叠目录
Ctrl + A Filetree视图: 显示/隐藏添加的文件
Ctrl + R Filetree视图:显示/隐藏已删除的文件
Ctrl + M Filetree视图:显示/隐藏已修改的文件
Ctrl + U Filetree视图:显示/隐藏未修改的文件
PageUp Filetree视图:向上滚动页面
PageDown Filetree视图:向下滚动页面
  • 分析mysql镜像
dive mysql:8.0.19

  • 执行CI扫描
dive mysql:8.0.19 --ci

其他

在我们CI中可以集成dive,对每次构建的镜像进行检测,及时发现镜像中的异常和优化点,针对性的优化镜像。

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。