龙空技术网

镜像太大?试试GitHub-Dive,分析Docker镜像内容还能减小大小

GitHub优选 447

前言:

今天同学们对“docker镜像包太大了有影响吗”可能比较重视,你们都需要了解一些“docker镜像包太大了有影响吗”的相关文章。那么小编也在网摘上搜集了一些关于“docker镜像包太大了有影响吗””的相关资讯,希望各位老铁们能喜欢,你们一起来学习一下吧!

Dive 是一个分析和浏览 Docker 镜像每层内容的工具 , 并可以发现一些减少你的 Docker 镜像大小的方法。

使用以下带镜像 tag/id/digest 的命令即可分析一个 docker 镜像:

dive <your-image-tag>

你也可以构建镜像时直接分析它:

dive build -t <some-tag>

目前这是测试版。如果您需要一个新功能或发现一个错误,请随时提交问题 。

基本功能

显示按层细分的Docker镜像内容

如果您选择了左边的一层 , 右边会展示该层内容以及所有的上级层次 。

指出每层中发生了哪些变化

文件树中指出了被更改、修改、添加、删除的文件 。 可以调整此值来显示特定层次的修改 , 或这一层的聚合修改 。

预估 " 镜像效率 "

左下方窗格显示了基本层次信息,和一个猜测您的镜像空间中包含有多少被浪费空间的实验指标 。 这可能是跨层复制文件 、 跨层移动文件 、或不完全删除文件 。 提供了百分比"得分" ( score ) 和 被浪费的总文件空间 。

快速构建 / 分析周期

您可以使用命令 dive build -t some-tag 构建一个 Docker 镜像并立即分析。

您只需要将您的 docker 构建命令替换成相同的 dive 构建命令。

安装

Ubuntu/Debian

wget  apt install ./dive_0.5.0_linux_amd64.deb

RHEL/Centos

curl -OL  -i dive_0.5.0_linux_amd64.rpm

Arch Linux

可在 Arch用户软件仓库(Arch User Repository,AUR) 中获得 。

yay -S dive

以上示例假定 yay 是安装AUR包的工具。 注意: AUR 仓库不受 Dive 项目维护者的控制。

Mac

brew tap wagoodman/divebrew install dive

或者从 Release 页面下载最新的 Darwin 版本 。

Windows

从最新 Release 下载 。

Go tools

go get github.com/wagoodman/dive

注意 : 用这种方式安装 , 当运行 dive -v 时您将看不到合适的版本。

Docker

docker pull wagoodman/dive

docker pull quay.io/wagoodman/dive

运行时需要包含 Docker 客户端二进制文件和 socket 文件 :

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

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

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

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

DOCKER_API_VERSION=1.37 dive ...

或者如果您用一个 docker 镜像运行:

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

快捷键

配置

配置非强制 , 但是 , 您可以创建配置文件并对其中的值进行覆盖:

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 bindingkeybinding: # 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: pgdndiff: # You can change the default files show in the filetree (right pane). All diff types are shown by default. hide: - added - removed - changed - unchangedfiletree: # 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.5layer: # 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

GitHub 链接:

标签: #docker镜像包太大了有影响吗 #docker镜像包太大了有影响吗怎么办 #dockerubuntu镜像多大 #docker镜像太大 #docker镜像太大的原因