目的:可以准确拉取想要的镜像
注:摘要:就是sha256加密之后的字符串
第一步:
docker image ls --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
docker.io/mongo latest sha256:2704b1f2ad53c0c5fb029fc112f99b5e9acdca3ab869095a3f8c6d14b2e3c0f3 965553e202a4 3 days ago 363 MB
docker.io/ubuntu latest sha256:a7b8b7b33e44b123d7f997bd4d3d0a59fafc63e203d17efedf09ff3f6f516152 cf0f3ca922e0 2 weeks ago 64.2 MB
docker.io/mongo 3.3.11 sha256:95d63cfa52f476b196e004ea54108bb876e76825426c2d489610796eb315d68b 97d969a5eca5 3 years ago 425 MB
第二步:
docker pull docker.io/mongo@ sha256:2704b1f2ad53c0c5fb029fc112f99b5e9acdca3ab869095a3f8c6d14b2e3c0f3
起因:在推送以及拉取镜像的时候,都会对镜像层进行压缩来节省宽带以及仓库的二进制储存空间。在推送镜像到DockerHub上,DockerHub会确认推送的镜像有没有被篡改,DockerHub就会对镜像层重新计算散列值,因为镜像层做了压缩,所以校验就会失败
解决办法:每个镜像就会包含一个分发散列值,就是压缩版镜像的散列值,该散列值就是校验就会用于校验拉取以及推送的过程中,镜像有没有被篡改