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开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践