DIGEST
docker pull | Docker Documentation
Where can I find the sha256 code of a docker image? – Stack Overflow
go-containerregistry/crane.md at main · google/go-containerregistry · GitHub
digest 是镜像的唯一身份,不会被修改(而 tag 会被修改),通过 digest 能够获取确定版本的镜像。
问题:摘要发生变化
我们目前发现的问题是
1)当 docker tag 后,不同仓库地址的 Digest 不同。通过 docker inspect --format='{{index .RepoDigests 0}}' $IMAGE 会发现多个摘要;
2)当推送镜像后,将仅保留当前仓库的 Digest 信息,而原始仓库的 Digest 信息将不会被推送到当前仓库中;
通过 crane cp 命令,能够解决该问题:
./crane cp \ registry.k8s.io/ingress-nginx/controller:v1.2.1 \ registry.example.com/ingress-nginx/controller:v1.2.1 # 在 Harbor 中,crane 无法使用多级镜像路径,即 registry.example.com/a/b/c/ingress-nginx/controller:v1.2.1 将失败;