赞
踩
dive能够分析docker镜像分层内容以及发现缩小docker/OCI镜像大小的方法。
提高部署效率:能够秒级快速启动一个应用,而传统的方式分钟级别以上;
提高运行效率:相对物理机和虚拟化,容器具有更高的资源利用率;
提高可移植性:容器部署能够极大的屏蔽资源环境的差异化,可快速迁移;
降低管理成本:通过容器编排工具,进一步的管理容器,可以降低管理成本。(Kubernetes能带来更高管理便捷,但是也相应带来了很高的学习和维护成本)
https://github.com/wagoodman/dive
按层细分展示 docker 镜像内容
当选择左侧的图层时,右侧将显示该图层的内容以及所有先前图层的内容。此外,还可以使用箭头键全面浏览文件树。
详细展示 docker 镜像每一层的变化
已更改、修改、添加或删除的文件会在文件树中展示。可以对其进行调整以显示特定层的更改,或直至该层的最后更改。
估算镜像冗余度
左下窗格显示基本镜像图层信息和指标,该指标预估镜像包含浪费了多少空间。这可能是由于跨层复制文件、跨层移动文件或未完全删除文件造成的冗余。提供每一层浪费空间的百分比和总浪费文件空间。
在构建时快速分析
可以构建docker镜像时使用命令立即进行分析,只需要将docker build命令替换为相同的dive build 命令即可。
dive build -t some-tag .
持续集成集成
当使用设置环境变量CI=true时,dive UI 将被绕过,直接分析docker镜像,通过返回代码提示是通过/失败。目前,.dive-ci 可以将文件放在存储库的根目录中,或者可以使用选项覆盖 CI 配置路径--ci-config。目前支持三个指标:
- rules:
- # If the efficiency is measured below X%, mark as failed.
- # Expressed as a ratio between 0-1.
- lowestEfficiency: 0.95
-
- # If the amount of wasted space is at least X or larger than X, mark as failed.
- # Expressed in B, KB, MB, and GB.
- highestWastedBytes: 20MB
-
- # If the amount of wasted space makes up for X% or more of the image, mark as failed.
- # Note: the base image layer is NOT included in the total image size.
- # Expressed as a ratio between 0-1; fails if the threshold is met or crossed.
- highestUserWastedPercent: 0.20
支持多种镜像源和容器引擎
使用--source选项,可以选择获取容器镜像:
dive <your-image> --source <source>
或者
dive <source>://<your-image>
其中source选项支持以下几种:
docker:docker引擎(默认选项)
docker-archive:磁盘上的 docker tar 包
podman:Podman 引擎(目前仅支持 Linux)
dive提供了多种操作系统部署包,可以直接运行命令进行快速安装。
Ubuntu/Debian
使用 deb:
- 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.deb
- sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb
使用 snap:
- sudo snap install docker
- sudo snap install dive
- sudo snap connect dive:docker-executables docker:docker-executables
- sudo snap connect dive:docker-daemon docker:docker-daemon
RHEL/Centos
- 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
Mac
如果使用的是 Homebrew:
brew install dive
如果使用的是MacPorts:
sudo port install dive
grype支持通过一条命令针对容器镜像和文件系统进行漏洞扫描。
支持以下主要操作系统软件包的漏洞:
Alpine
Amazon Linux
BusyBox
CentOS
CBL-Mariner
Debian
Distroless
Oracle Linux
Red Hat (RHEL)
Ubuntu
支持以下语言包漏洞:
Ruby (Gems)
Java (JAR, WAR, EAR, JPI, HPI)
JavaScript (NPM, Yarn)
Python (Egg, Wheel, Poetry, requirements.txt/setup.py files)
Dotnet (deps.json)
Golang (go.mod)
PHP (Composer)
Rust (Cargo)
支持 Docker、OCI 和Singularity镜像格式。
支持通过OpenVEX过滤和增强扫描结果。
在下载界面,按照操作系统类型下载对应安装包:
https://github.com/anchore/grype/releases
以 Linux X86 系统为例
- wget https://github.com/anchore/grype/releases/download/v0.74.7/grype_0.74.7_linux_amd64.rpm
- rpm -ivh grype_0.74.7_linux_amd64.rpm
-
- #出现以下信息,表名安装成功
- [root@localhost ~]# rpm -ivh grype_0.74.7_linux_amd64.rpm
- Verifying... ################################# [100%]
- Preparing... ################################# [100%]
- package grype-0:0.74.7-1.x86_64 is already installed
快速扫描镜像
grype <image>
全面扫描镜像
grype <image> --scope all-layers
扫描运行中的容器
docker run --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--name Grype anchore/grype:latest \
$(ImageName):$(ImageTag)
扫描其他源的镜像
- # scan a container image archive (from the result of `docker image save ...`, `podman save ...`, or `skopeo copy` commands)
- grype path/to/image.tar
-
- # scan a Singularity Image Format (SIF) container
- grype path/to/image.sif
-
- # scan a directory
- grype dir:path/to/dir
grype 扫描结果的输出格式也是可配置的:
grype <image> -o <format>
支持以下几种数据格式:
table:表格(默认);
cyclonedx:符合CycloneDX 1.4 规范的 XML 报告;
cyclonedx-json:符合CycloneDX 1.4规范的JSON报告;
json:默认JSON格式报告,具有更多的信息;
template:按照用户指定的模板输出格式。
最后
grype还支持其他功能,比如遇到严重漏洞自动退出通知、忽略已知漏洞、VEX支持等等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。