docker - 运行“docker trust inspect”时,Docker 镜像没有签名者
问题描述
我正在尝试确定应该使用 DockerHub 上的哪个 alpine 映像版本。
我在 DockerHub 上看到 alpine 的最新标签(截至 2021 年 4 月 23 日)是 3.13.5,所以我运行了这个命令:
$ docker trust inspect --pretty alpine:3.13.5
No signatures for alpine:3.13.5
我检查了旧版本的 alpine 并得到了这个:
$ docker trust inspect --pretty alpine:3.12.1
Signatures for alpine:3.12.1
SIGNED TAG DIGEST SIGNERS
3.12.1 c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a (Repo Admin)
这是否意味着我不应该信任 alpine:3.13.5 因为没有签名者?非常感谢!
解决方案
图像签名在过去曾经中断过,所以我怀疑这只是 Docker 上游的一些事情(我正在与我的一些联系人联系,但周末已经开始了很多人,所以在他们回应之前可能会有点)。
公证人版本 1 并没有被太多人接受,这就是为什么它可以持续这么长时间而很少有人注意到它不起作用。我们正在积极开发Notary 版本 2,它有望解决许多限制版本 1 采用的问题,但在版本 2 成为 GA 之前还有一段时间,我们可以逐步淘汰版本 1。
在那之前,我怀疑最新的 alpine 镜像是安全的,为了增加保障,通过漏洞扫描程序运行镜像将是一种将风险降至最低的有用方法。特别是因为漏洞扫描程序会指出旧版本映像中的已知漏洞仍将被签名。
推荐阅读
- google-sheets - Google表格:将公式复制到列中的所有单元格
- visual-studio - 发布我自己的 Nuget 包时,如何将项目引用指定为 Nuget 包引用?
- google-cloud-platform - 如何在名称服务器为 8.8.8.8 和 8.8.4.4 的 GCP 虚拟机中永久设置 resolv.conf?
- ios - AVPlayerViewController 不显示字幕控件
- python - (顺便说一句,没有错误)为什么我的清除命令不起作用?
- python - 如何使用 CMake 构建 Python 扩展模块?
- bash - 在 ubuntu 上的 bash 中运行循环,预期为 1,2,3,...n 但得到 {0..10}
- python - Firebase 实时数据库添加/删除/更新/检索数据
- imagemagick - 使用缺失文件创建固定大小的图像蒙太奇
- android - 以编程方式在 Android 11 上启用 USB 网络共享