专栏名称: GitHubStore
分享有意思的开源项目
目录
相关文章推荐
GitHubStore  ·  Docker镜像分析工具Dive ·  2 天前  
运维  ·  花 5 年时间,21 ... ·  5 天前  
InfoQ架构头条  ·  基于Java的无代码和低代码应用开发工具综述 ·  1 周前  
51好读  ›  专栏  ›  GitHubStore

Docker镜像分析工具Dive

GitHubStore  · 公众号  · 运维  · 2024-12-02 08:48

正文

项目简介

Dive 可以分析 Docker image 每个 layer 的内容,检测空间使用率,对学习 Docker layer 的原理,优化 Docker 镜像的大小都特别有用。

要分析 Docker 镜像,只需运行带有镜像 tag/id/digest 的 div :

dive <your-image-tag>

或者你可以直接使用 docker 命令潜水

alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"dive 
# for exampledive nginx:latest

或者,如果您想构建图像,则直接跳到分析它:

dive build -t <some-tag> .

在 Macbook 上构建(仅支持 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" \      wagoodman/dive:latest build -t  .

此外,您可以在 CI 管道中运行它,以确保将浪费的空间保持在最低限度(这会跳过 UI):

CI=true dive 



基本特点

按层细分显示 Docker 镜像内容


当您选择左侧的图层时,右侧将显示该图层的内容以及所有先前图层的内容。此外,您还可以使用箭头键全面浏览文件树。


指出每一层的变化

已更改、修改、添加或删除的文件会在文件树中指示。可以对其进行调整以显示特定层的更改,或直至该层的聚合更改。


估计“图像效率”

左下窗格显示基本图层信息和实验指标,该指标将猜测图像包含多少浪费空间。这可能是由于跨层复制文件、跨层移动文件或未完全删除文件造成的。提供百分比“分数”和总浪费文件空间。



快速构建/分析周期

您可以构建 Docker 映像并使用一个命令立即进行分析: dive build -t some-tag .


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


持续集成集成

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


支持多种镜像源和容器引擎

dive  --source <source>

或者

dive ://

使用有效的source选项,如下所示:

  • docker :Docker 引擎(默认选项)

  • docker-archive :磁盘上的 Docker Tar 存档

  • podman :Podman 引擎(仅限 Linux)


项目链接

https://github.com/wagoodman/dive

扫码加入技术交流群,备注开发语言-城市-昵称

合作请注明


 

关注「GitHubStore」公众号