1 Docker Images 命令

查看已有的镜像列表:

  1. $ docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. hub.fano.ai/fanolabs/fano-asr-init-data 24.06.2-v3.8.0.0.1-all-ubi9 8bafe9e5ab1a 8 weeks ago 19.5GB
  4. hub.fano.ai/fanolabs/nlp-models llama31-70b-instruct-awq bab16313ab6b 2 months ago 39.9GB
  5. hub.fano.ai/fanolabs/nlp-models 7f5e3c48-368d-4067-9775-feafadc7e879_paloalto_scan 4485a34e0495 2 months ago 15.3GB
  6. hub.fano.ai/fanolabs/nlp-models qwen2-7b-instruct 4485a34e0495 2 months ago 15.3GB
  7. quay.io/app-sre/ubi9-ubi-minimal latest 16f404cd0c33 2 months ago 99.2MB
  8. hub.fano.ai/fanolabs/fano-nlp-entity 23.06.14.1-v2.7.7-ubi8 f43da9a9445f 2 months ago 1.83GB

查看镜像 metadata 信息:

  1. $ docker image inspect hub.fano.ai/fanolabs/fano-asr-init-data:24.06.2-v3.8.0.0.1-all-ubi9

[Docker] 镜像分析工具 dive 使用方法 - 图1

查看镜像的构建历史记录:

  1. $ docker history hub.fano.ai/fanolabs/fano-asr-init-data:24.06.2-v3.8.0.0.1-all-ubi9

[Docker] 镜像分析工具 dive 使用方法 - 图2

2 Dive 工具

A tool for exploring each layer in a docker image

GitHub Reference:https://github.com/wagoodman/dive

2.1 安装 Dive 工具

Dive 命令将镜像层次更加可视化的展示出来:

GitHub Reference:https://github.com/wagoodman/dive?tab=readme-ov-file#installation

RHEL/Centos

  1. DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
  2. curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm
  3. rpm -i dive_${DIVE_VERSION}_linux_amd64.rpm

可以使用 Docker pull dive 镜像

  1. $ docker pull wagoodman/dive

将 Scan 镜像的信息:

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

例如:

  1. $ docker run --rm -it \
  2. -v /var/run/docker.sock:/var/run/docker.sock \
  3. wagoodman/dive:latest hub.fano.ai/fanolabs/fano-asr-init-data:24.06.2-v3.8.0.0.1-all-ubi9

[Docker] 镜像分析工具 dive 使用方法 - 图3

2.2 Dive 的展示信息

Dive 分析成功之后,就会到管理员可以操作的界面,可以对镜像进行查看更新。

[Docker] 镜像分析工具 dive 使用方法 - 图4

Dive 可以分析已经存在的镜像之外,还可以在 Build images 的时候进行 Dive 的分析

  1. $ docker build \
  2. -t hub.fano.ai/fanolabs/fano-asr-init-data:24.06.2-v3.8.0.0.1-all-ubi9 \
  3. -f Dockerfile .
  4. # 替换成
  5. $ dive build \
  6. -t hub.fano.ai/fanolabs/fano-asr-init-data:24.06.2-v3.8.0.0.1-all-ubi9 \
  7. -f Dockerfile .

[Docker] 镜像分析工具 dive 使用方法 - 图5