问题

众所周知,摘要是不可变的,而标签则是可变的。在需要确保在服务的整个生命周期中使用相同的精确镜像的许多情况下,最好使用摘要。它被认为是生产环境的最佳实践(请参阅thisthis)。

摘要的问题在于,尽管摘要是不变且有用的,但人类无法理解。所有示例都使用摘要标签。但是实践表明,您可以同时使用两者。只是标签被省略了。

例如:

docker run --rm k8s.gcr.io/pause-amd64:3.1@sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610
kubectl create deployment pause --image k8s.gcr.io/pause-amd64:3.1@sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610



使用<image_path>:<tag>@sha256:<digest>模式安全吗?

编辑

好像是absolutely legit

最佳答案

是的,存在摘要时将忽略该标签。

您甚至可以组成一个标签,它仍将通过摘要提取图像:

docker image pull k8s.gcr.io/pause-amd64:some-made-up-tag@sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610

sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610: Pulling from pause-amd64
Digest: sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610
Status: Image is up to date for k8s.gcr.io/pause-amd64@sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610

关于docker - 将容器图像标签与摘要一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53848875/

10-16 23:42