如何使用 docker secret rm 命令删除秘密

DockerDockerBeginner
立即练习

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

简介

在这个实验中,你将学习如何使用秘密(secrets)在 Docker 中安全地管理敏感数据。你将从创建一个 Docker 秘密来存储敏感信息开始。

创建完成后,你将通过列出现有的秘密来验证该秘密是否已成功添加到你的 Docker 环境中。最后,你将练习删除该秘密,并通过再次列出秘密来确认其已被删除。这个实践练习将指导你使用创建、列出和删除 Docker 秘密的基本命令。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555223{{"如何使用 docker secret rm 命令删除秘密"}} docker/rm -.-> lab-555223{{"如何使用 docker secret rm 命令删除秘密"}} docker/create -.-> lab-555223{{"如何使用 docker secret rm 命令删除秘密"}} end

创建一个秘密

在这一步中,你将学习如何在 Docker 中创建一个秘密。Docker 秘密用于管理容器在运行时所需的敏感数据,例如密码、SSH 密钥和其他凭证。与直接将敏感信息存储在容器镜像中或作为环境变量传递相比,使用秘密是一种更安全的处理方式。

在创建秘密之前,让我们确保你已经设置好了必要的 Docker 环境。LabEx 虚拟机已预先安装了 Docker。你可以通过运行以下命令来验证 Docker 版本:

docker version

你应该会看到类似以下的输出,表明 Docker 已安装并正在运行:

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        baedd2a
 Built:             Tue Oct 25 17:58:10 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       363bd3a
  Built:            Tue Oct 25 17:56:32 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd335e8e55e68bf582ae4525b3a13ffa8a49392
  Built:            Tue Oct 25 17:54:39 2022
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
  Built:            Tue Oct 25 17:54:25 2022
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  Built:            Tue Oct 25 17:54:16 2022

要创建一个秘密,你可以使用 docker secret create 命令。该命令从标准输入或文件中读取敏感数据,并在 Docker 中创建一个秘密。

让我们创建一个名为 my_password 的简单秘密,其值为 s3cr3t。我们将把秘密值通过管道传递给 docker secret create 命令。

echo "s3cr3t" | docker secret create my_password -

执行该命令后,Docker 将创建秘密并输出其 ID。输出将类似于以下内容:

<secret_id>

<secret_id> 是你刚刚创建的秘密的唯一标识符。请记住这一点,因为你在未来的操作中可能会用到它。

列出秘密以验证创建情况

在这一步中,你将学习如何列出 Docker 中现有的秘密,以验证你在上一步中创建的秘密是否已成功添加。

要列出 Docker 管理的所有秘密,你可以使用 docker secret ls 命令。该命令会提供一个秘密列表,包括它们的 ID、名称和创建时间戳。

让我们运行该命令来查看秘密:

docker secret ls

输出应该会显示你在上一步中创建的 my_password 秘密,以及它的 ID 和创建时间。输出将类似于以下内容:

ID                          NAME                CREATED             UPDATED
<secret_id>                 my_password         About a minute ago  About a minute ago

你可以看到 my_password 秘密已列出,这证实了它已成功创建。<secret_id> 将与你创建秘密时输出的 ID 相匹配。

此命令对于管理你的秘密并确保它们在你的 Docker 环境中配置正确非常有用。

删除一个秘密

在这一步中,你将学习如何在 Docker 中删除一个秘密。当秘密不再需要时,删除它们对于安全和清理 Docker 环境非常重要。

要删除一个秘密,你可以使用 docker secret rm 命令,后面跟上秘密的名称或 ID。在前面的步骤中,我们创建了一个名为 my_password 的秘密。

让我们删除 my_password 秘密:

docker secret rm my_password

执行该命令后,Docker 将删除该秘密,并输出被删除的秘密的名称或 ID。输出将类似于以下内容:

my_password

这证实了 my_password 秘密已从你的 Docker 环境中成功删除。

当秘密不再使用时将其删除是一个好习惯,这样可以最大程度地降低敏感信息被未经授权访问的风险。

列出秘密以验证删除情况

在这一步中,你将再次列出 Docker 秘密,以验证你在上一步中删除的 my_password 秘密已不再存在。

要列出所有秘密,请使用 docker secret ls 命令:

docker secret ls

这次,输出中应该不包含 my_password 秘密。如果你的环境中没有其他秘密,输出可能如下所示:

ID                          NAME                CREATED             UPDATED

如果有其他秘密,你会看到它们被列出,但 my_password 应该不在其中。这证实了删除操作已成功。

在删除秘密后列出它们是确保敏感数据不再存储在你的 Docker 环境中的一个好方法。

总结

在这个实验中,你学习了如何使用秘密(secrets)在 Docker 中安全地管理敏感数据。你首先验证了你的 Docker 环境,然后使用 docker secret create 命令创建了一个名为 my_password 的秘密,通过标准输入管道传入秘密值。

创建秘密后,你使用 docker secret ls 命令列出现有的秘密,确认 my_password 已成功创建。最后,你练习使用 docker secret rm 命令删除该秘密,并通过再次列出秘密来验证其已被删除,展示了 Docker 秘密的完整生命周期。