首页 > 解决方案 > 运行“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 因为没有签名者?非常感谢!

标签: dockercontainersdockerhub

解决方案


图像签名在过去曾经中断过,所以我怀疑这只是 Docker 上游的一些事情(我正在与我的一些联系人联系,但周末已经开始了很多人,所以在他们回应之前可能会有点)。

公证人版本 1 并没有被太多人接受,这就是为什么它可以持续这么长时间而很少有人注意到它不起作用。我们正在积极开发Notary 版本 2,它有望解决许多限制版本 1 采用的问题,但在版本 2 成为 GA 之前还有一段时间,我们可以逐步淘汰版本 1。

在那之前,我怀疑最新的 alpine 镜像是安全的,为了增加保障,通过漏洞扫描程序运行镜像将是一种将风险降至最低的有用方法。特别是因为漏洞扫描程序会指出旧版本映像中的已知漏洞仍将被签名。


推荐阅读