docker - 将容器图像标签与摘要一起使用
问题描述
问题
众所周知,摘要是不可变的,而标签是可变的。在需要保证在服务的生命周期内使用相同的图像的情况下,最好使用摘要。它被认为是生产环境的最佳实践(参见this和this)。
摘要的问题是,虽然它们是不可变的和有用的,但它们不是人类可读的。所有示例都使用摘要或标签。但实践表明,您可以同时使用这两种方法。只是省略了标签。
例如:
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>
模式是否安全?
编辑
似乎它是绝对合法的。
解决方案
是的,当摘要存在时,标签会被忽略。
你甚至可以组成一个标签,它仍然会通过摘要拉取图像:
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
推荐阅读
- java - Java Key Store 总是以空别名结束
- google-sheets - 如何将 SORT/ORDER 和 GROUP 组合在一个 QUERY 中?
- python - 每次使用 Python 创建一个 cmd ''ipconfig/flushdns'' 命令的应用程序?
- r - 使用 ggplot2 绘制堆叠区域和线条
- python - pytorch 数据集中每个类的实例数
- python - Flask render_template() 删除数据库中的条目后不显示主页
- c++ - C++ 模板函数的行为与 Visual Studio 2019 中的虚幻引擎不一致
- sql-server - 查询以获取 SQL Server 兼容级别
- javascript - window.print 分页后重复内容
- haskell - haskell 编译程序无显示