如何使用 docker context update 命令修改上下文配置

DockerDockerBeginner
立即练习

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

简介

在本实验中,我们将探索如何使用 docker context update 命令修改现有 Docker 上下文(context)的配置。我们将首先创建一个新的 Docker 上下文作为操作对象。

创建上下文后,我们将演示如何更新其描述信息以及修改它所连接的 Docker 端点(endpoint)。最后,我们将验证上下文配置是否已成功更新。这个动手练习将为你提供管理和修改 Docker 上下文的实践经验,以便连接不同的 Docker 守护进程(daemon)。


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/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555136{{"如何使用 docker context update 命令修改上下文配置"}} docker/inspect -.-> lab-555136{{"如何使用 docker context update 命令修改上下文配置"}} docker/create -.-> lab-555136{{"如何使用 docker context update 命令修改上下文配置"}} docker/system -.-> lab-555136{{"如何使用 docker context update 命令修改上下文配置"}} end

创建新的 Docker 上下文

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

要创建新的 Docker 上下文,我们使用 docker context create 命令。该命令需要为新上下文指定名称以及它应该连接的 Docker 守护进程端点(endpoint)。在本实验中,我们将创建一个名为 my-context 的上下文,用于连接本地 Docker 守护进程。

打开终端并运行以下命令:

docker context create my-context --docker host=unix:///var/run/docker.sock

此命令创建了一个名为 my-context 的新上下文。--docker host=unix:///var/run/docker.sock 选项指定该上下文应通过 /var/run/docker.sock 的 Unix 套接字连接 Docker 守护进程。这是大多数 Linux 系统上 Docker 套接字的默认位置。

运行命令后,你应该会看到类似以下的输出,表明上下文已成功创建:

my-context
Successfully created context "my-context"

创建上下文后,我们可以通过列出可用上下文来验证其存在。使用 docker context ls 命令:

docker context ls

你将看到一个上下文列表,包括 default 上下文和新创建的 my-context。输出内容类似这样:

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

default 旁边的星号(*)表示这是当前激活的上下文。我们将在后续步骤中学习如何切换上下文。

更新上下文描述

在这一步骤中,我们将更新上一步创建的 Docker 上下文的描述信息。为上下文添加描述有助于记忆其用途,特别是当你拥有多个上下文时。

要更新 Docker 上下文,我们使用 docker context update 命令。该命令需要指定待更新的上下文名称以及需要修改的选项。我们将更新 my-context 上下文并为其添加描述信息。

打开终端并运行以下命令:

docker context update my-context --description "My local Docker context"

此命令将更新 my-context 上下文,并将其描述设置为"My local Docker context"。

运行命令后,你应该会看到类似以下的输出,确认更新成功:

my-context
Successfully updated context "my-context"

现在,让我们验证描述信息是否已更新。我们可以再次使用 docker context ls 命令列出上下文并查看其描述:

docker context ls

现在你应该能看到 my-context 关联的描述信息"My local Docker context"。输出内容如下:

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

为上下文添加描述是组织 Docker 上下文的一个良好实践。

更新上下文的 Docker 端点

在这一步骤中,我们将更新 my-context 关联的 Docker 端点。虽然在真实场景中你可能会将端点更新为指向远程 Docker 守护进程,但本实验将通过修改为仍指向本地守护进程的稍不同格式来演示这一过程。这展示了在需要时如何修改连接细节。

要更新 Docker 端点,我们再次使用 docker context update 命令,但这次我们会通过 --docker host 选项指定新的端点。我们将把端点从 unix:///var/run/docker.sock 改为 unix://var/run/docker.sock(移除 unix: 后的额外斜杠)。

打开终端并运行以下命令:

docker context update my-context --docker host=unix://var/run/docker.sock

此命令将更新 my-context 上下文并修改其 Docker 端点。

运行命令后,你应该会看到类似以下的输出,确认更新成功:

my-context
Successfully updated context "my-context"

现在,让我们验证 Docker 端点是否已更新。我们可以再次使用 docker context ls 命令列出上下文并查看其端点:

docker context ls

现在你应该能看到 my-context 关联的更新后端点 unix://var/run/docker.sock。输出内容如下:

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

当你需要更改 Docker 上下文连接 Docker 守护进程的方式时(例如从本地连接切换到远程连接),更新端点这一操作至关重要。

验证更新后的上下文配置

在这最后一步中,我们将对 my-context 进行全面验证,确保描述信息和 Docker 端点都已正确更新。我们将使用 docker context inspect 命令,该命令能提供特定上下文的详细信息。

打开终端并运行以下命令:

docker context inspect my-context

此命令将输出一个包含 my-context 配置详情的 JSON 文档。我们需要检查输出中的 DescriptionDocker.Endpoint 字段。

输出内容应类似如下(具体输出可能因 Docker 版本和环境略有差异):

[
  {
    "Name": "my-context",
    "Metadata": {
      "Description": "My local Docker context"
    },
    "Endpoints": {
      "docker": {
        "Host": "unix://var/run/docker.sock"
      }
    },
    "TLSMaterial": {},
    "Storage": "my-context"
  }
]

检查输出结果,确认 Description 字段为 "My local Docker context",且 Docker.Endpoint 字段为 "unix://var/run/docker.sock"。这证明我们之前步骤中的更新操作已成功完成。

本步骤完成了我们关于创建和更新 Docker 上下文的实验。你已学习到如何创建新上下文、添加描述信息以及修改其 Docker 端点。理解 Docker 上下文对于管理不同 Docker 环境的连接至关重要。

总结

在本实验中,我们学习了如何使用 docker context create 命令创建新的 Docker 上下文,包括指定名称和 Docker 端点。随后通过 docker context ls 命令列出所有可用上下文,验证了新上下文的创建。

创建完成后,我们探索了如何使用 docker context update 命令修改现有上下文的配置。具体而言,我们更新了新创建上下文的描述信息和 Docker 端点。最后,我们再次通过列出上下文并观察输出中的变化,确认这些更新已成功应用。