dive:一款按层分析docker镜像的工具

2024-05-28 15:04

本文主要是介绍dive:一款按层分析docker镜像的工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一款用于分析docker镜像、图层内容以及探索缩小Docker镜像大小的方法的工具。

Image

要分析Docker镜像,只需使用image tag/id/digest运行:

dive <your-image-tag>

或者如果你想新建一个自己的image,那就直接使用命令:

dive build -t <some-tag> .

基本功能

按层分解显示的ocker图像内容当您在左侧选择一个图层时,将显示该图层的内容结合右边的所有先前图层。 此外,你可以充分探索带箭头键的文件树。现实每层的变化文件树显示已更改,已修改,添加或删除的文件。可以调整此值以显示特定图层的更改,或聚合更改到此层。估计image效率左下方窗格显示基本图层信息和实验指标猜猜您的图片包含多少浪费的空间。 这可能来自重复跨层文件,跨层移动文件或不完全删除文件。提供了百分比“得分”和总浪费的文件空间。快速构建/分析周期您可以构建Docker镜像并使用一个命令立即进行分析:dive build -t some-tag .您只需要使用相同的dive build替换docker build命令

安装

Ubuntu/Debian

wget https://github.com/wagoodman/dive/releases/download/v0.4.1/dive_0.4.1_linux_amd64.deb
sudo apt install ./dive_0.4.1_linux_amd64.deb

RHEL/Centos

curl -OL https://github.com/wagoodman/dive/releases/download/v0.4.1/dive_0.4.1_linux_amd64.rpm
rpm -i dive_0.4.1_linux_amd64.rpm

Arch Linux在Arch User Repository(AUR)中以dive的形式提供。

yay -S dive

以上示例假定[yay](AUR (en) - yay)作为安装AUR包的工具。Mac

brew tap wagoodman/dive
brew install dive
go get github.com/wagoodman/dive

Note: 以这种方式安装,您将无法在运行时看到正确的版本 dive -v.Docker

docker pull wagoodman/dive

or

docker pull quay.io/wagoodman/dive

运行时,您需要包含docker客户端二进制文件和套接字文件:

docker run --rm -it \-v /var/run/docker.sock:/var/run/docker.sock \wagoodman/dive:latest <dive arguments...>

适用于Windows的Docker(显示PowerShell兼容的换行符;折叠为一行以实现命令提示符兼容性)

docker run --rm -it `-v /var/run/docker.sock:/var/run/docker.sock `wagoodman/dive:latest <dive arguments...>

Note: 根据您在本地运行的docker版本,您可能需要将docker API版本指定为环境变量:

   DOCKER_API_VERSION=1.37 dive ...

or if you are running with a docker image:

docker run --rm -it \-v /var/run/docker.sock:/var/run/docker.sock \-e DOCKER_API_VERSION=1.37wagoodman/dive:latest <dive arguments...>

KeyBindings

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

Configuration

无需配置,但是,您可以创建配置文件并覆盖值:

log:enabled: truepath: ./dive.loglevel: info
# Note: you can specify multiple bindings by separating values with a comma.
# Note: UI hinting is derived from the first binding
keybinding:# Global bindingsquit: ctrl+ctoggle-view: tab, ctrl+spacefilter-files: ctrl+f, ctrl+slash# Layer view specific bindings  compare-all: ctrl+acompare-layer: ctrl+l# File view specific bindingstoggle-collapse-dir: spacetoggle-added-files: ctrl+atoggle-removed-files: ctrl+rtoggle-modified-files: ctrl+mtoggle-unmodified-files: ctrl+upage-up: pguppage-down: pgdndiff:# You can change the default files show in the filetree (right pane). All diff types are shown by default. hide:- added- removed- changed- unchanged
filetree:# The default directory-collapse statecollapse-dir: false# The percentage of screen width the filetree should take on the screen (must be >0 and <1)pane-width: 0.5
layer:# Enable showing all changes from this layer and ever previous layershow-aggregated-changes: false

dive将在以下位置搜索配置:

~/.dive.yaml

$XDG_CONFIG_HOME/dive.yaml

~/.config/dive.yaml

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

 大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

这篇关于dive:一款按层分析docker镜像的工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

python项目打包成docker容器镜像的两种方法实现

《python项目打包成docker容器镜像的两种方法实现》本文介绍两种将Python项目打包为Docker镜像的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录简单版:(一次成功,后续下载对应的软件依赖)第一步:肯定是构建dockerfile,如下:第二步

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++ scoped_ptr 和 unique_ptr对比分析

《C++scoped_ptr和unique_ptr对比分析》本文介绍了C++中的`scoped_ptr`和`unique_ptr`,详细比较了它们的特性、使用场景以及现代C++推荐的使用`uni... 目录1. scoped_ptr基本特性主要特点2. unique_ptr基本用法3. 主要区别对比4. u

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Java多种文件复制方式以及效率对比分析

《Java多种文件复制方式以及效率对比分析》本文总结了Java复制文件的多种方式,包括传统的字节流、字符流、NIO系列、第三方包中的FileUtils等,并提供了不同方式的效率比较,同时,还介绍了遍历... 目录1 背景2 概述3 遍历3.1listFiles()3.2list()3.3org.codeha

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse