如何使用 docker context rm 命令删除上下文

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何管理 Docker 上下文(context),重点聚焦于上下文的删除操作。首先,你将通过创建一个新的 Docker 上下文来理解添加上下文的流程。接着,你将学习如何列出已有上下文以查看可用配置,并识别当前活跃的上下文。实验的核心内容将涉及使用 docker context rm 命令来删除特定上下文。最后,你将探索尝试删除当前活跃上下文(不使用强制选项)时的行为,以及如何通过强制选项成功完成删除。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555134{{"如何使用 docker context rm 命令删除上下文"}} docker/rm -.-> lab-555134{{"如何使用 docker context rm 命令删除上下文"}} docker/create -.-> lab-555134{{"如何使用 docker context rm 命令删除上下文"}} docker/system -.-> lab-555134{{"如何使用 docker context rm 命令删除上下文"}} end

创建新的 Docker 上下文

在这一步骤中,我们将学习如何创建新的 Docker 上下文(context)。Docker 上下文是一种管理不同 Docker 守护进程连接的方式。默认情况下,Docker 使用 default 上下文,该上下文连接至本地 Docker 守护进程。你可以创建新的上下文来连接远程 Docker 守护进程或其他编排工具。

要创建新的 Docker 上下文,我们使用 docker context create 命令。基本语法为 docker context create <context_name>。让我们创建一个名为 my-context 的新上下文。

docker context create my-context

运行该命令后,你将看到表明上下文已成功创建的输出信息。

my-context
Successfully created context "my-context"

此命令会在你的 Docker 配置目录中创建一个新的上下文配置文件。当前该上下文指向与 default 上下文相同的本地 Docker 守护进程。在后续步骤中,我们将探索如何配置上下文以连接不同的 Docker 环境。

列出已有的 Docker 上下文

在这一步骤中,我们将学习如何列出已有的 Docker 上下文。这有助于查看可用的上下文以及当前活跃的是哪一个。

要列出 Docker 上下文,我们使用 docker context ls 命令。

docker context ls

运行该命令后,你将看到一个表格列出所有可用的上下文。输出内容包括上下文名称、描述、端点信息以及是否为当前上下文。你应该能看到 default 上下文和我们在上一步创建的 my-context。上下文名称旁的 * 号表示这是当前活跃的上下文。

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment           unix:///var/run/docker.sock
my-context          Docker context "my-context"               unix:///var/run/docker.sock

此命令能帮助你追踪可以连接的不同 Docker 环境。

删除特定 Docker 上下文

在这一步骤中,我们将学习如何删除特定的 Docker 上下文。这对于清理不再需要的上下文非常有用。

要删除 Docker 上下文,我们使用 docker context rm 命令,后接要删除的上下文名称。让我们删除之前步骤中创建的 my-context

docker context rm my-context

运行该命令后,你将看到确认上下文已被删除的输出信息。

my-context

现在,让我们再次列出上下文以确认 my-context 已被删除。

docker context ls

此时输出应仅显示 default 上下文。

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment           unix:///var/run/docker.sock

这演示了如何删除特定的 Docker 上下文。

尝试强制删除当前 Docker 上下文

在这一步骤中,我们将尝试在不使用强制选项的情况下删除当前活跃的 Docker 上下文。这将演示当尝试删除正在使用的上下文时 Docker 的行为。

首先,让我们确认当前上下文。

docker context ls

你应该能看到 default 上下文被标记了星号 (*),表示这是当前上下文。

现在,让我们尝试使用 docker context rm 命令删除 default 上下文。

docker context rm default

你可能会看到类似这样的错误信息:

Error: context "default" is currently in use

出现这个错误是因为 Docker 会阻止你删除当前活跃的上下文,以避免中断你当前的 Docker 操作。要删除当前上下文,你需要使用强制选项,我们将在下一步中介绍这个方法。

强制删除当前 Docker 上下文

在这一步骤中,我们将学习如何强制删除当前活跃的 Docker 上下文。正如上一步所见,不使用强制选项就无法删除当前上下文。

要强制删除当前 Docker 上下文,我们使用带有 -f--force 标志的 docker context rm 命令,后接上下文名称。让我们强制删除 default 上下文。

docker context rm -f default

运行该命令后,你将看到确认上下文已被删除的输出信息。

default

现在,让我们再次列出上下文以确认 default 上下文已被删除。

docker context ls

你可能会看到提示没有可用上下文的消息,或者如果存在其他默认上下文,Docker 可能已切换到其他上下文。在当前环境中,删除 default 上下文后尝试列出上下文会导致错误,因为没有活跃的上下文。

Error: No contexts available. Create a context, or use --help for more information.

这演示了如何强制删除当前 Docker 上下文。

总结

在本实验中,我们学习了如何管理 Docker 上下文。我们首先使用 docker context create 命令创建了一个名为 my-context 的新上下文,这让我们能够定义与不同 Docker 守护进程的连接。接着,我们使用 docker context ls 命令列出可用上下文,观察到新创建的 my-context 与默认上下文并列显示,并通过星号标记识别出当前活跃的上下文。

实验继续演示了如何使用 docker context rm 删除特定 Docker 上下文。我们还将探索在不使用强制选项的情况下尝试删除当前活跃上下文的行为,并最终学习如何强制删除当前 Docker 上下文。