Exploring each layer in a docker image, it's fast and simple, developed with Rust. There are two modes: terminal(default) and web.
It does not depend on anything, including docker client.
It supports multiple platforms: linux, windows and macos, you can get it from release page.
Note: Since the layer data needs to be downloaded from the source, such as Docker Hub, it may take a long time, if times out, please try again, it is recommended that the download program be executed locally. For image sources deployed privately, you can deploy the image of Diving on a machine that can access the image source.
The config file is ~/.diving/config.yml, the options:
layer_path: The path of layer cache, default is~/.diving/layerslayer_ttl: The ttl of layer, default is90d. The layer will be purged if it is not accessed again for 90 days
Supports three data source modes analyze image. The specific form is as follows:
registryget image form docker registry or other registrydockerget image from local docker clientfileget image for tar file
diving redis:alpine
diving quay.io/prometheus/node-exporter
diving docker://redis:alpine
diving file:///tmp/redis.tar
CI=true diving redis:alpineCurrent Layer Contentsonly show the files of current layerPress 1only show theModified/Removedfiles of current layerPress 2only show the files >= 1MBPress Esc or 0reset the view mode
docker run -d --restart=always \
-p 7001:7001 \
-v $PWD/diving:/home/rust/.diving \
--name diving \
vicanso/divingIt should be noted that it does not run as root, so the mounted directory needs to add the permission(r+w), otherwise it will fail to start.
Open http://127.0.0.1:7001/ in the browser.

