简介
在这个实验中,你将学习如何使用 docker secret create
命令在 Docker 环境中有效管理敏感数据。你将探索创建机密(secret)的不同方法,包括从标准输入(STDIN)和文件中读取数据。
本实验将引导你完成使用特定名称和不同来源创建机密的过程。你还将学习如何为机密添加标签以实现更好的组织,以及如何检查已创建机密的详细信息,以验证其内容和配置。通过这个实践经验,你将掌握在使用 Docker Swarm 部署应用程序时保护敏感信息所需的基本技能。
在这个实验中,你将学习如何使用 docker secret create
命令在 Docker 环境中有效管理敏感数据。你将探索创建机密(secret)的不同方法,包括从标准输入(STDIN)和文件中读取数据。
本实验将引导你完成使用特定名称和不同来源创建机密的过程。你还将学习如何为机密添加标签以实现更好的组织,以及如何检查已创建机密的详细信息,以验证其内容和配置。通过这个实践经验,你将掌握在使用 Docker Swarm 部署应用程序时保护敏感信息所需的基本技能。
在这一步中,你将学习如何通过从标准输入(STDIN)读取数据来创建 Docker 机密。这对于在不将敏感信息直接存储在主机系统文件中的情况下,将其提供给容器非常有用。
首先,让我们创建一个包含密码的简单机密。我们将使用 echo
命令输出密码,并将其通过管道传递给 docker secret create
命令。
echo "mysecretpassword" | docker secret create my_password_secret -
在这个命令中:
echo "mysecretpassword"
将字符串 "mysecretpassword" 输出到标准输出。|
是管道运算符,它将 echo
命令的输出作为输入传递给下一个命令。docker secret create
是用于创建新 Docker 机密的命令。my_password_secret
是我们为这个机密指定的名称。-
告诉 docker secret create
从标准输入读取机密数据。你应该会看到新创建的机密的 ID 作为输出。
在这一步中,你将学习如何根据文件内容创建 Docker 机密。这是管理 API 密钥、证书或配置文件等机密信息的常用方法。
首先,让我们创建一个包含一些敏感数据的简单文件。我们将在你的主目录(~/project
)下创建一个名为 api_key.txt
的文件。
echo "my_super_secret_api_key_12345" > ~/project/api_key.txt
此命令使用 echo
将字符串 "my_super_secret_api_key_12345" 写入文件 ~/project/api_key.txt
。
现在,我们将使用该文件的内容创建一个 Docker 机密。
docker secret create my_api_key_secret ~/project/api_key.txt
在这个命令中:
docker secret create
是用于创建新 Docker 机密的命令。my_api_key_secret
是我们为这个机密指定的名称。~/project/api_key.txt
是包含机密数据的文件的路径。Docker 将读取该文件的内容并将其存储为机密。你应该会看到新创建的机密的 ID 作为输出。
在这一步中,你将学习如何在创建 Docker 机密时为其添加标签。标签是可以附加到 Docker 对象上的键值对,用于帮助组织和识别这些对象。这在大规模部署中特别有用。
我们将再次从标准输入(STDIN)创建一个机密,但这次会为其添加标签。
echo "anothersecretvalue" | docker secret create --label env=production --label app=webserver my_labeled_secret -
在这个命令中:
echo "anothersecretvalue"
通过标准输入提供机密数据。docker secret create
是用于创建机密的命令。--label env=production
添加一个键为 env
、值为 production
的标签。--label app=webserver
添加另一个键为 app
、值为 webserver
的标签。你可以通过重复使用 --label
标志来添加多个标签。my_labeled_secret
是机密的名称。-
表示应从标准输入读取机密数据。你应该会看到新创建的机密的 ID 作为输出。添加标签有助于你对机密进行分类,使后续的管理和筛选更加容易。
在这一步中,你将学习如何使用 docker secret inspect
命令查看 Docker 机密的详细信息。该命令会提供有关机密的详细信息,包括其 ID、名称、创建时间以及与之关联的任何标签。
让我们查看上一步中创建的机密 my_labeled_secret
。
docker secret inspect my_labeled_secret
此命令将输出一个包含 my_labeled_secret
详细信息的 JSON 对象。你应该会看到诸如机密的 ID、名称(my_labeled_secret
)、创建时间以及我们添加的标签(env=production
和 app=webserver
)等信息。
请注意,出于安全原因,在查看机密时不会显示实际的机密数据。
你还可以查看我们创建的其他机密:
docker secret inspect my_password_secret
docker secret inspect my_api_key_secret
查看机密是验证其是否存在、检查其配置以及确认标签是否正确应用的有效方法。
在本次实验中,你学习了如何使用 docker secret create
命令在 Docker 中有效管理敏感数据。你练习了直接从标准输入(STDIN)读取数据来创建机密,这有助于避免将敏感信息存储在主机的文件中。你还学习了如何从文件内容创建机密,这是管理各种类型敏感数据(如 API 密钥或证书)的常用方法。
此外,你探索了如何在创建机密时添加标签来加强机密管理,从而更好地组织和识别机密。最后,你学习了如何查看已创建机密的详细信息,以验证其配置和内容(尽管在总结中未提供完整的查看步骤细节)。这些技术为你在 Docker 环境中处理敏感信息提供了安全的方法。