确定Docker映像是有符号还是无符号

我通读了Docker Content Trust的文档,并且遇到了一些问题。 我启动docker没有启用DCT和部署一些图像。 然后我决定启用DCT,以便我只能继续部署签名的图像。 未签名的已经部署的将会发生什么? 他们会继续运行吗?

我可以以某种方式确定(在容器和主机中的应用程序内),如果运行的图像是有符号或无符号的?

这是DCT的文档

未签名的已经部署的将会发生什么? 他们会继续运行吗?

如果您拖放的Docker内容信任closures的图像,然后打开泊坞窗内容信任,现有的图像/容器将不会发生任何事情。

内容信任操作是100%的docker客户端实现。 守护进程并不真正知道也不关心图像是否被签名。

如果启用了Docker内容信任,并执行拉取,创build或运行,则客户端将查找信任数据并find已签名图像的sha256摘要。 守护进程接着被告知它正在执行该摘要的拉/创build/运行。

我可以以某种方式确定(在容器和主机中的应用程序内),如果运行的图像是有符号或无符号的?

一般来说,从容器内部,很less暴露。 您不能返回图像名称,容器名称,甚至是发布的端口。 即使可以,守护进程对映像签名也是盲目的,只知道已经被告知运行特定的摘要。

在主机上,您可以确定正在运行的容器是否正在使用已签名的映像,但不会简单地列在“docker images”或“docker ps”中。 您将不得不将图像与信任数据进行比较。 没有一个预先制作的UI组件可以帮助我知道。

有一点要记住,签名可以更新。 说我正在运行Ubuntu的14.04,这是一个签名的图像。 我的容器已经启动,一切正常。 ubuntu:14.04影像迟早会被更新,新的信任数据将随着影像的更新而发布。 现在,我的容器有一个过时的图像。 下次我去做docker pull / create / run时,会得到更新后的信任数据,我会得到更新的图像。 DCT保证的一部分是新鲜度。