Docker镜像执行inspect命令返回两个RepoDigests值是什么含义?
Docker inspect返回多个RepoDigests值的含义
- 核心结论:RepoDigests数组存储的是该本地镜像历史上曾经关联过的所有仓库端内容哈希标识,出现多个值的核心原因是你使用的latest是可变标签,镜像维护者可以随时更新标签指向的镜像内容,你本地先后拉取过同一标签的不同版本,Docker不会自动清理历史digest记录。
示例中的两个Digest解释
- 前缀为
76d47e5917c5的Digest:对应你曾经拉取过的旧版aquasec/trivy:latest镜像的仓库哈希,后来维护者更新了latest标签指向的镜像内容,该旧版本已经从Docker Hub下架,因此你在Docker Hub上查询不到该记录。 - 前缀为
c0d08ac683a0的Digest:是当前Docker Hub上latest标签对应镜像的最新哈希,也是你最后一次拉取该标签时同步到本地的版本。
清理冗余历史Digest的方法
如果你想要清除本地保留的旧Digest记录,可以执行以下操作:
# 完全删除本地存储的trivy镜像 docker rmi aquasec/trivy:latest # 重新拉取当前最新的latest标签镜像 docker pull aquasec/trivy:latest # 再次查询inspect结果,RepoDigests将仅保留当前Docker Hub存在的最新Digest docker inspect aquasec/trivy:latest
内容的提问来源于stack exchange,提问作者Marek Grzenkowicz
相关产品推荐
相关产品推荐

