x-cmd pkg | dive - 用于探索 docker 镜像内容和层次结构,优化 Docker/OCI 镜像大小的工具

本文主要是介绍x-cmd pkg | dive - 用于探索 docker 镜像内容和层次结构,优化 Docker/OCI 镜像大小的工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 简介
    • 快速上手
    • 功能特点
    • 竞品和相关项目
    • 进一步阅读

简介

dive 是由 Alex Goodman 用 Go 开发的 Docker 镜像探查工具。它提供可视化图形界面,能分析 Docker 镜像的内容和层次结构,如浏览镜像中的文件和目录信息、查看每层镜像内容的文件变更情况、进行安全性检查等。

对于需要深入分析和优化 Docker 镜像的开发者和运维人员,dive 能帮你更高效地优化 Docker 或 OCI 镜像,检查镜像中潜在的风险;对于学习 Docker 的新手,它能帮你更好地查看 Docker 镜像的层次结构,加深对 Docker 镜像原理的理解。

在这里插入图片描述

快速上手

  1. 安装 dive

    eval "$(curl https://get.x-cmd.com)"        # 安装 x-cmd
    x env use dive                              # 使用 x-cmd 安装 dive
    
  2. 使用 dive 查看指定镜像:

    dive ubuntu:latest                          # 使用 dive 查看指定镜像,如 ubuntu:latest 镜像
    dive --ci ubuntu:latest                     # 不启用可视化界面,直接输出分析结果
    
  3. 常用快捷键:

    • q:退出 dive UI 界面;
    • tab:将视图切换至镜像层或文件树;
    • Ctrl-F:过滤文件。
  4. (补充)dive UI 界面展示的内容大致可分为四块:

    • Layers:显示镜像的每个分层基本信息,如分层占用的磁盘大小和相应的命令;
    • Layer Details:显示所选中镜像层的详细信息,如 Id、sha256 值;
    • Image Details:显示镜像的详细信息,如镜像名、镜像大小、空间利用率;
    • Current Layer Contents:显示每个镜像分层对镜像的文件系统带来的改变,其中绿色代表新增的文件、黄色代表被修改的文件、红色代表已被删除的文件。

功能特点

  1. 层分析:能直观地展示每个镜像分层的信息和对镜像的文件系统带来的改变,并用颜色区分更改、添加或删除的文件。
  2. 文件系统浏览:支持浏览镜像中的文件系统,能查看每个文件和目录的详细信息。
  3. 镜像优化:可以提供镜像优化建议,以帮用户减小镜像的大小,例如合并层或删除不必要的文件。
  4. CI Integration:支持在持续集成过程中自动化分析 Docker 镜像的效率并评估空间浪费情况。

竞品和相关项目

  1. slimtoolkit/slim:用 Go 开发的 Docker 镜像优化工具,能自动分析应用程序的依赖关系,识别并去除不必要的文件和库,从而生成更精简的镜像,适合需要优化和缩小 Docker 镜像的场景。
  2. lazydocker:Docker 命令的终端图形界面,能实时监控 docker 的各种信息并进行管理操作,界面简单易懂,特别适合需要频繁操作多个容器的场景。
  3. grype:容器镜像漏洞扫描工具,用于检测容器镜像中的安全漏洞。它也支持扫描容器的软件清单(SBOM),并提供有关漏洞的详细信息。
  4. syft:镜像和文件系统分析工具,用于从容器映像和文件系统生成软件物料清单(SBOM)。

进一步阅读

  • dive 源代码 - dive 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 dive 和参与社区贡献。
  • Dive - Analyze Docker Images - 主要讲解了 docker 镜像大小的优化和 dive 的用法,浅显易懂。

更多内容请查阅 : pkg/dive

转载请标明原文链接 :https://www.x-cmd.com/pkg/dive


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法

这篇关于x-cmd pkg | dive - 用于探索 docker 镜像内容和层次结构,优化 Docker/OCI 镜像大小的工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139036

相关文章

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.