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

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

MySQL中慢SQL优化方法的完整指南

《MySQL中慢SQL优化方法的完整指南》当数据库响应时间超过500ms时,系统将面临三大灾难链式反应,所以本文将为大家介绍一下MySQL中慢SQL优化的常用方法,有需要的小伙伴可以了解下... 目录一、慢SQL的致命影响二、精准定位问题SQL1. 启用慢查询日志2. 诊断黄金三件套三、六大核心优化方案方案