如何使用 docker secret inspect 命令查看机密详细信息

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何使用 docker secret inspect 命令查看 Docker 机密(secret)的详细信息。你将首先创建一个 Docker 机密来管理敏感数据。然后,你将探索如何使用机密的名称和唯一 ID 来查看该机密的信息。最后,你将学习如何使用 Go 模板格式化 inspect 命令的输出,以提取特定信息。通过这个实践操作,你将掌握有效管理和排查 Docker 机密问题的技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555221{{"如何使用 docker secret inspect 命令查看机密详细信息"}} docker/inspect -.-> lab-555221{{"如何使用 docker secret inspect 命令查看机密详细信息"}} docker/create -.-> lab-555221{{"如何使用 docker secret inspect 命令查看机密详细信息"}} end

创建 Docker 机密

在这一步中,你将学习如何创建一个 Docker 机密(secret)。Docker 机密用于管理敏感数据,例如密码、SSH 密钥和 TLS 证书。机密在静止和传输时都会被加密,并且只有被授予访问权限的服务才能访问它们。

要创建一个 Docker 机密,你需要使用 docker secret create 命令。该命令接受两个参数:机密的名称和包含机密数据的文件的路径。

让我们创建一个名为 my_secret 的简单机密,其内容为 "thisisasecret"。首先,在你的 ~/project 目录中创建一个名为 secret.txt 的文件,并将机密内容写入其中。

echo "thisisasecret" > ~/project/secret.txt

现在,使用 docker secret create 命令创建 Docker 机密。

docker secret create my_secret ~/project/secret.txt

你应该会看到新创建的机密的 ID 被打印到控制台。这表明机密已成功创建。

通过名称查看机密信息

在这一步中,你将学习如何通过名称查看 Docker 机密(secret)的信息。docker secret inspect 命令可以让你查看机密的详细信息,例如其 ID、创建日期和标签。

要通过名称查看机密信息,你需要使用 docker secret inspect 命令,后面跟上机密的名称。在上一步中,我们创建了一个名为 my_secret 的机密。现在让我们来查看这个机密的信息。

docker secret inspect my_secret

该命令的输出将是一个 JSON 对象,其中包含了 my_secret 机密的详细信息。你会看到诸如 IDNameCreatedAtUpdatedAtSpec 等字段。

这个命令在机密创建后用于验证其详细信息,或者在排查与机密相关的问题时非常有用。

通过 ID 查看机密信息

在这一步中,你将学习如何通过 ID 查看 Docker 机密(secret)的信息。虽然通过名称查看很方便,但有时你可能只知道机密的 ID,特别是在使用自动化脚本或查看日志时。

要通过 ID 查看机密信息,你需要使用 docker secret inspect 命令,后面跟上机密的 ID。你可以从 docker secret create 命令的输出中获取机密 ID,也可以使用 docker secret ls 命令列出所有机密来获取。

让我们获取在第一步中创建的 my_secret 的 ID。

docker secret ls

输出将显示一个包含机密 ID 和名称的表格。复制 my_secret 的 ID,它看起来可能像 abcdef1234567890

现在,将 YOUR_SECRET_ID 替换为你复制的实际 ID,然后运行查看命令:

docker secret inspect YOUR_SECRET_ID

你将看到与通过名称查看时相同的详细 JSON 输出。这表明你可以使用名称或 ID 来查看机密信息。

使用 Go 模板格式化输出

在这一步中,你将学习如何使用 Go 模板来格式化 docker secret inspect 命令的输出。这是一个强大的功能,允许你从 JSON 输出中提取特定信息,并以自定义格式显示。

Go 模板使用简单的语法来访问 JSON 结构中的字段。你可以使用点号表示法来引用字段,例如,使用 .ID 访问 ID 字段,或使用 .Spec.Name 访问 Spec 对象中的名称字段。

要格式化输出,你需要使用 --format 标志,后面跟上 Go 模板字符串。让我们尝试使用 Go 模板仅提取 my_secret 的 ID 和名称。

docker secret inspect my_secret --format 'ID: {{.ID}}, Name: {{.Spec.Name}}'

输出将是:

ID: <secret_id>, Name: my_secret

<secret_id> 替换为你机密的实际 ID。

你可以在 Go 模板中使用各种函数和控制结构来创建更复杂的输出格式。例如,你可以遍历标签或有条件地显示信息。

当你需要在脚本中处理 Docker 命令的输出或将其与其他工具集成时,这种格式化功能特别有用。

总结

在本次实验中,你学习了如何使用机密(secrets)在 Docker 中管理敏感数据。你首先从一个文件创建了一个名为 my_secret 的 Docker 机密,了解到机密是经过加密的,并且只有授权的服务才能访问。

创建机密之后,你探索了如何使用 docker secret inspect 命令查看机密的详细信息。你练习了通过机密名称(my_secret)来查看机密,该操作会提供一个包含机密 ID、创建日期和其他规格信息的 JSON 输出。这展示了 inspect 命令在验证机密详细信息方面的基本用法。