如何使用 docker context ls 命令列出上下文

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何高效使用 docker context ls 命令来管理和查看你的 Docker 上下文(context)。Docker 上下文是轻松切换不同 Docker 守护进程(无论是本地、远程还是基于云)的关键工具。

通过动手实践,你将探索如何列出所有可用上下文及其详细信息,过滤输出以仅显示上下文名称,以及以多种方式格式化输出(包括 JSON 格式和使用自定义模板)。这将帮助你快速识别和理解已配置的 Docker 环境。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") subgraph Lab Skills docker/ls -.-> lab-555133{{"如何使用 docker context ls 命令列出上下文"}} end

列出所有 Docker 上下文

在这一步中,你将学习如何使用 docker context ls 命令列出所有可用的 Docker 上下文。Docker 上下文能让你轻松切换不同的 Docker 守护进程,无论它们是运行在本地、远程机器还是云环境中。

要列出所有 Docker 上下文,请打开终端并运行以下命令:

docker context ls

该命令会显示一个表格,包含每个 Docker 上下文的信息,包括名称、描述、端点(endpoint)以及是否为当前上下文。

你将看到类似以下的输出:

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

其中 default 上下文是在安装 Docker 时自动创建的,默认指向本地 Docker 守护进程。

仅列出 Docker 上下文名称

在上一步中,你查看了包含详细信息的全部 Docker 上下文。有时你可能只需要查看上下文的名称。你可以通过 docker context ls 命令结合 --format 标志来实现这一需求。

--format 标志允许你使用 Go 的 text/template 包来指定输出格式。要仅列出名称,你可以使用模板 {{.Name}}

在终端中运行以下命令:

docker context ls --format "{{.Name}}"

该命令将仅输出 Docker 上下文的名称,每个名称占一行。

你将看到类似以下的输出:

default

当你需要快速查看可用上下文名称(例如用于脚本编写或进一步处理)时,这个功能非常实用。

以 JSON 格式输出 Docker 上下文列表

除了列出名称或使用默认表格格式外,你还可以将 docker context ls 的输出格式化为 JSON。这在需要以编程方式处理上下文信息时特别有用。

要将输出格式化为 JSON,请使用 --format 标志并指定值为 json

在终端中运行以下命令:

docker context ls --format json

该命令将输出一个 JSON 数组,其中每个数组元素代表一个 Docker 上下文。

你将看到类似以下的输出:

[
  {
    "Name": "default",
    "Current": true,
    "Endpoint": "unix:///var/run/docker.sock",
    "Description": "Current DOCKER_HOST environment",
    "DockerEndpoint": "unix:///var/run/docker.sock",
    "KubernetesEndpoint": "",
    "Orchestrator": "swarm"
  }
]

JSON 输出提供了一种结构化的方式来访问每个 Docker 上下文的所有详细信息。

使用自定义模板格式化 Docker 上下文列表输出

在前面的步骤中,你已经了解了如何列出所有上下文、仅显示名称以及将输出格式化为 JSON。--format 标志功能非常强大,允许你使用 Go 的 text/template 语法定义自定义输出模板。

你可以指定要显示的字段及其格式。例如,让我们以自定义格式列出上下文名称及其描述。模板中可用的字段包括 NameDescriptionDockerEndpointKubernetesEndpointOrchestrator

在终端中运行以下命令:

docker context ls --format "Context Name: {{.Name}}, Description: {{.Description}}"

该命令使用自定义模板显示每个上下文的名称和描述。

你将看到类似以下的输出:

Context Name: default, Description: Current DOCKER_HOST environment

你可以创建更复杂的模板来包含其他字段,或根据需求以不同方式格式化输出。这种灵活性对于脚本编写和将 Docker 上下文信息集成到其他工具中非常有用。

总结

在本实验中,你学习了如何使用 docker context ls 命令来列出 Docker 上下文。你首先通过该命令查看了所有可用上下文的详细信息,包括名称、描述、端点(endpoint)和编排器(orchestrator)。接着,你探索了如何使用 --format "{{.Name}}" 标志仅列出上下文名称,这对于快速查看或脚本编写非常有用。最后,你学会了使用 --format json 标志将输出格式化为 JSON,这种结构化输出特别适合程序化处理。