简介
在本次实验中,你将学习如何使用 docker trust inspect
命令来检查与 Docker 镜像相关的信任信息。你将探索如何检查单个已签名和未签名镜像标签的信任数据,以及仓库中所有已签名标签的信任数据。
通过实践练习,你将通过检查镜像的数字签名来获得验证镜像完整性和发布者的实践经验。你将学习如何解读 docker trust inspect
命令的输出,并理解已签名和未签名镜像之间信任信息的差异。最后,你将了解如何检查多个镜像的信任信息,并以人类可读的格式查看输出。
在本次实验中,你将学习如何使用 docker trust inspect
命令来检查与 Docker 镜像相关的信任信息。你将探索如何检查单个已签名和未签名镜像标签的信任数据,以及仓库中所有已签名标签的信任数据。
通过实践练习,你将通过检查镜像的数字签名来获得验证镜像完整性和发布者的实践经验。你将学习如何解读 docker trust inspect
命令的输出,并理解已签名和未签名镜像之间信任信息的差异。最后,你将了解如何检查多个镜像的信任信息,并以人类可读的格式查看输出。
在这一步中,你将学习如何使用 docker trust inspect
命令来检查单个已签名镜像标签的信任信息。Docker 内容信任(Docker Content Trust)允许你验证从镜像仓库拉取的镜像的完整性和发布者。
首先,让我们拉取一个已签名的镜像。我们将使用 docker/trusttest
镜像,它是专门为测试 Docker 内容信任而设计的。
docker pull docker/trusttest:latest
你应该会看到显示正在拉取镜像的输出。
现在,我们可以检查这个特定镜像标签的信任信息。docker trust inspect
命令就是用于此目的的。
docker trust inspect docker/trusttest:latest
此命令的输出将向你展示与该镜像标签相关的签名详细信息,其中包括签名者及其密钥。如果镜像已签名,你将看到有关签名的信息;如果未签名,输出将表明未找到信任数据。
在这一步中,你将学习如何检查包含已签名镜像的仓库中未签名镜像标签的信任信息。这表明,即使仓库中有已签名的标签,单个未签名的标签也不会有信任信息。
我们将继续使用 docker/trusttest
仓库。在上一步中,我们检查了已签名的 latest
标签。现在,让我们尝试检查同一仓库中已知未签名的标签。为此,我们将使用 unsigned
标签。
首先,让我们尝试拉取 unsigned
标签的镜像。
docker pull docker/trusttest:unsigned
你应该会看到显示正在拉取镜像的输出。
现在,让我们使用 docker trust inspect
命令来检查 unsigned
标签的信任信息。
docker trust inspect docker/trusttest:unsigned
当你运行此命令时,你可能会看到输出表明此特定标签未找到信任数据。这是因为 unsigned
标签尽管位于有已签名标签的仓库中,但它本身没有有效的签名。这凸显了 Docker 内容信任(Docker Content Trust)是按标签进行操作的。
在这一步中,你将学习如何检查特定仓库中所有已签名镜像标签的信任信息。这有助于你了解仓库中哪些标签是可信的。
我们将继续使用 docker/trusttest
仓库。在前面的步骤中,我们查看了单个标签。现在,我们将检查整个仓库,以查看所有已签名的标签。
要检查仓库中所有已签名的标签,你可以使用 docker trust inspect
命令,后面跟上仓库名称,无需指定特定标签。
docker trust inspect docker/trusttest
当你执行此命令时,输出将列出 docker/trusttest
仓库中所有与有效信任数据关联的标签。你应该会看到 latest
标签的信息(我们在第一步中已验证它是已签名的),如果该仓库中还有其他已签名的标签,也可能会显示出来。未签名的标签,如我们在第二步中检查的 unsigned
标签,不会出现在此输出中。
此命令提供了一种便捷的方式,让你可以快速查看根据 Docker 内容信任(Docker Content Trust),仓库中的哪些镜像版本被认为是可信的。
在这一步中,你将学习如何使用单个 docker trust inspect
命令来检查多个镜像标签的信任信息。当你想一次性检查多个特定镜像的信任状态时,这非常有用。
我们将使用一个命令来检查 docker/trusttest
仓库中已签名的 latest
标签和未签名的 unsigned
标签的信任信息。
要检查多个镜像,你只需在 docker trust inspect
命令后面列出镜像名称(包括标签),并用空格分隔。
docker trust inspect docker/trusttest:latest docker/trusttest:unsigned
当你运行此命令时,输出将显示每个指定镜像标签的信任信息。你应该会看到 docker/trusttest:latest
的签名详细信息,以及 docker/trusttest:unsigned
未找到信任数据的提示。这证实了你可以在一次操作中高效地检查多个镜像的信任状态。
在这一步中,你将学习如何在 docker trust inspect
命令中使用 --pretty
标志,以更易于人类阅读的格式显示信任信息。默认情况下,输出为 JSON 格式,这种格式对脚本编写很有用,但不太适合人类快速查看。
我们将再次检查已签名的 docker/trusttest:latest
镜像的信任信息,但这次我们会添加 --pretty
标志。
docker trust inspect --pretty docker/trusttest:latest
当你执行此命令时,输出将以更易于阅读和理解的方式进行格式化。它通常会以类似表格的结构呈现信息,清晰地展示镜像、签名者及其密钥的详细信息。
将此输出与第一步中的默认 JSON 输出进行比较,你会发现 --pretty
标志让信任信息更便于人类查看。当你手动检查镜像的信任状态时,这尤其有用。
在本次实验中,我们学习了如何使用 docker trust inspect
命令来检查镜像的信任信息。首先,我们检查了单个已签名镜像标签的信任数据,观察了相关签名和签名者的详细信息。接着,我们探究了在一个已签名的仓库中检查未签名镜像标签的情况,发现只有已签名的标签才拥有信任信息。
我们进一步扩展了知识面,学会了检查仓库中所有已签名标签的信任信息,以及同时检查多个镜像的信任信息。最后,我们学习了如何以更易于人类阅读的格式显示信任信息,从而更轻松地解读签名细节。通过这些步骤,你获得了使用 Docker 内容信任(Docker Content Trust)验证 Docker 镜像完整性和发布者的实践经验。