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.37
    wagoodman/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: true
  path: ./dive.log
  level: info
# Note: you can specify multiple bindings by separating values with a comma.
# Note: UI hinting is derived from the first binding
keybinding:
  # Global bindings
  quit: ctrl+c
  toggle-view: tab, ctrl+space
  filter-files: ctrl+f, ctrl+slash
  # Layer view specific bindings  
  compare-all: ctrl+a
  compare-layer: ctrl+l
  # File view specific bindings
  toggle-collapse-dir: space
  toggle-added-files: ctrl+a
  toggle-removed-files: ctrl+r
  toggle-modified-files: ctrl+m
  toggle-unmodified-files: ctrl+u
  page-up: pgup
  page-down: pgdn
  
diff:
  # 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 state
  collapse-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 layer
  show-aggregated-changes: false

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

~/.dive.yaml

$XDG_CONFIG_HOME/dive.yaml

~/.config/dive.yaml

网络安全学习资源分享:

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

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

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

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

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

 大厂面试题

 

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

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

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

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

特别声明:

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

  • 37
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 镜像的大小对于部署和传输来说都是非常重要的。较小的镜像可以更快地传输和部署,因此减小 Docker 镜像的大小是非常有必要的。以下是一些减小 Docker 镜像大小的方法: 1.使用多阶段构建:多阶段构建是一种将多个 Dockerfile 指令组合在一起的方法,以便在单个 Dockerfile 中构建多个镜像层。这可以减少镜像的大小,因为每个阶段只包含构建所需的文件和依赖项。 2.使用 .dockerignore 文件:.dockerignore 文件类似于 .gitignore 文件,可以指定哪些文件和目录不应包含在构建上下文中。这可以减少构建上下文的大小,从而减小镜像的大小。 3.精简镜像:在构建镜像时,只包含应用程序所需的文件和依赖项。例如,使用 Alpine Linux 作为基础镜像可以减小镜像的大小,因为 Alpine Linux 是一个非常小的 Linux 发行版。 4.删除不需要的文件和依赖项:在构建镜像时,确保删除不需要的文件和依赖项。例如,在安装软件包后,运行 apt-get clean 命令可以删除不需要的软件包和缓存文件。 5.压缩镜像:使用 Docker 的内置压缩功能可以减小镜像的大小。例如,使用 docker save 命令将镜像保存为 tar 文件时,可以使用 -gzip 选项启用压缩。 6.使用 Docker 镜像优化工具:如引用所述,有许多 Docker 镜像优化工具可以帮助你减小 Docker 镜像的大小,例如 Dive。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值