Docker镜像分析工具dive的安装和使用

Dive 的主要功能:

  • 分层分析:查看 Docker 镜像的每一层,了解每层的文件及其占用的空间。
  • 空间利用率:计算镜像中有效空间的占比,给出效率评分。
  • 浪费空间检测:识别重复文件、未使用的依赖或冗余数据。
  • 手动优化建议:根据分析结果手动调整 Dockerfile 以优化镜像大小。
在RHEL/Centos系统上安装dive:
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm
rpm -i dive_${DIVE_VERSION}_linux_amd64.rpm

检查dive版本号:

dive --version

通过以下命令来分析 Docker 镜像:

dive nginx:latest

  

或者通过Docker安装dive:

拉取镜像:

docker pull wagoodman/dive:latest

通过以下命令来分析 Docker 镜像:

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

解释:

  • -v /var/run/docker.sock:/var/run/docker.sock:这是为了让 Dive 能够访问 Docker 守护进程,来读取和分析本地的 Docker 镜像。
  • --rm:在容器退出后自动删除容器。
  • -it:使容器运行在交互模式下,允许你与 Dive 进行交互。

Dive的使用 :

启动 dive 后,分为两部分:

  • 左侧(层结构):展示 Docker 镜像的每一层,显示每一层的命令(如 COPYRUN)和镜像层的大小。可以通过上下箭头在不同层之间切换。

  • 右侧(文件系统内容):展示每一层中具体添加、修改或删除的文件和目录。你可以看到镜像每一层对文件系统的影响,以及文件变化和大小。

  • Layer Details:介绍了这一层的命令

  • Images Details:介绍镜像的名字、占用空间、镜像中未使用的文件和重复使用文件的大小、镜像使用效率(未使用的文件和重复使用文件的大小/镜像占用总空间)

快捷键:

Tab:左右切换视图

Ctrl+F:搜索指定文件

Ctrl+L:仅显示当前选中层的文件变更(新增、修改、删除)。

  • 绿色:文件是新增的
  • 橙色:文件是被修改的

Ctrl+A:显示所有层的聚合变化,展示镜像最终的文件系统状态。

 右侧视图中的快捷键:

Space:折叠当前选中的目录,隐藏其下的文件和子目录,便于查看文件结构。

Ctrl+O:切换文件和目录的排序顺序。你可以在升序和降序之间切换

Ctrl+A:仅显示当前层中新增的文件。

Ctrl+R:仅显示当前层中被删除的文件。

Ctrl+M :仅显示当前层中被修改的文件。

Ctrl+U:仅显示当前层中未修改的文件。

Ctrl+B:显示文件和目录的属性(如文件权限、大小等)。

Ctrl+P:切换是否启用行换行显示(长文件名是否折行)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值