Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定Docker映像是已签名还是未签名_Docker - Fatal编程技术网

确定Docker映像是已签名还是未签名

确定Docker映像是已签名还是未签名,docker,Docker,我通读了Docker Content Trust的文档,在下面的场景中出现了一些问题。 我在没有启用DCT的情况下启动docker并部署一些图像。 然后我决定启用DCT,这样我只能继续部署签名图像。 已部署的未签名的将发生什么情况?他们会继续跑吗 我是否可以确定(在容器中的应用程序内部和从主机中)运行的映像是已签名的还是未签名的 这是您的文档 已部署的未签名的将发生什么情况?他们会继续跑吗 如果在禁用docker content trust的情况下提取图像,然后启用docker content

我通读了Docker Content Trust的文档,在下面的场景中出现了一些问题。 我在没有启用DCT的情况下启动docker并部署一些图像。 然后我决定启用DCT,这样我只能继续部署签名图像。 已部署的未签名的将发生什么情况?他们会继续跑吗

我是否可以确定(在容器中的应用程序内部和从主机中)运行的映像是已签名的还是未签名的

这是您的文档

已部署的未签名的将发生什么情况?他们会继续跑吗

如果在禁用docker content trust的情况下提取图像,然后启用docker content trust,则现有图像/容器将不会发生任何变化

内容信任操作是100%docker客户端实现。守护进程不知道也不关心映像是否已签名

如果启用了docker内容信任,并执行拉取、创建或运行,则客户端将查找信任数据并找到已签名映像的sha256摘要。然后,守护进程被告知它正在对该摘要进行拉/创建/运行

我是否可以确定(在容器中的应用程序内部和从主机中)运行的映像是已签名的还是未签名的

一般来说,从容器内部看,几乎没有暴露在外。您不能返回映像名称、容器名称,甚至不能返回已发布的端口。即使可以,守护进程也对图像签名视而不见,只知道它被告知运行特定摘要

在主机上,您可以确定正在运行的容器是否使用已签名的映像,但它并不是简单地列在“docker映像”或“docker ps”中。您必须将图像与信任数据进行比较。据我所知,没有一个预先制作的UI组件可以为您实现这一点


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

是的,它们将继续运行,据我所知,它们将确定图像是否已签名,而不是仅在
拉取过程中发生。如果我更确定的话,我会把这作为一个答案。拉只能用有符号的图像来完成,因为DCT只能看到有符号的图像;此外,从文档中还可以看出,命令
push
build
create
run
pull
都使用了DCT(我现在还添加了相关文档。您可能想通过此操作了解更多信息:@MattSchuchard这显示了签名图像的基本推拉操作,如我随附的文档中所述,但这无助于回答问题,或者我遗漏了什么?这是什么意思“您必须将图像与信任数据进行比较"?要将容器中当前假定为已签名的图像与注册表中已签名的图像进行比较?可以通过运行正确的公证人查找命令查看内容信任数据。例如,如果要查看ubuntu:14.04图像的sha256摘要,可以运行以下命令:
notary-d~/.docker/trust lookup docker.io/library/ubuntu 14.04
当你做一个
docker检查ubuntu:14.04
时,你可以将结果与reposdigests数据进行比较。如果它们匹配,那么你就知道你有正确的图像。现在我考虑一下,你也可以做另一个
docker拉ubuntu:14.04
,这将从签名数据中输出摘要,一个nd说你的引擎是否已经有了相应的映像。你需要仔细检查所有正在运行的容器,看看它们是否是用相同的映像摘要启动的。