如何使用 docker context create 命令管理 Docker 端点

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何使用 docker context create 命令高效管理不同的 Docker 端点(endpoint)。你将探索如何创建一个指向本地 Docker 守护进程(daemon)的新上下文(context),从而能够明确定义和切换不同的连接。

此外,你还将了解如何通过利用现有上下文的配置来简化上下文创建流程。这包括通过复制现有上下文来创建新上下文,以及创建使用其他上下文 Docker 端点配置的上下文,从而为管理 Docker 环境提供灵活性和效率。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/ls -.-> lab-555129{{"如何使用 docker context create 命令管理 Docker 端点"}} docker/inspect -.-> lab-555129{{"如何使用 docker context create 命令管理 Docker 端点"}} docker/create -.-> lab-555129{{"如何使用 docker context create 命令管理 Docker 端点"}} docker/images -.-> lab-555129{{"如何使用 docker context create 命令管理 Docker 端点"}} end

创建指向本地 Docker 端点的上下文

在本步骤中,你将学习如何创建一个指向本地 Docker 守护进程的上下文(context)。Docker 上下文是一种管理不同 Docker 守护进程(本地或远程)连接的方式。默认情况下,Docker 使用指向本地守护进程的 default 上下文,但你可以创建新上下文来明确定义连接。

首先,让我们查看现有上下文:

docker context ls

你应该能看到列出的 default 上下文。

现在,让我们创建一个名为 my-local-context 的新上下文,指向本地 Docker 端点。我们将使用 docker context create 命令配合 --docker 标志来指定 Docker 端点。由于我们连接的是本地守护进程,可以直接使用默认的 socket 路径:

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

创建上下文后,你可以再次列出上下文查看新建的条目:

docker context ls

现在你应该能看到 defaultmy-local-context 同时列出。星号(*)表示当前活跃的上下文,此时应该仍是 default

要使用新上下文,需要通过 docker context use 命令进行切换:

docker context use my-local-context

再次列出上下文时,my-local-context 应该已成为活跃上下文:

docker context ls

你可以通过运行简单的 Docker 命令(例如列出镜像)来验证当前正在使用 my-local-context

docker images

现在该命令将在 my-local-context 指定的 Docker 守护进程上执行。

最后,如需切换回默认上下文,可执行:

docker context use default

基于现有上下文创建新上下文

在本步骤中,你将学习如何通过复制现有上下文的配置来创建新的 Docker 上下文。当你需要基于现有上下文创建稍作修改的版本,而不想重新指定所有配置细节时,这个方法非常实用。

首先,请确认我们已创建了上一步中的 my-local-context。你可以列出所有上下文进行确认:

docker context ls

现在,我们将基于 my-local-context 创建一个名为 my-copied-context 的新上下文。使用 docker context create 命令并指定 --from 参数,后跟现有上下文的名称:

docker context create my-copied-context --from my-local-context

创建新上下文后,再次列出上下文查看新增的 my-copied-context

docker context ls

此时你应该能看到 defaultmy-local-contextmy-copied-context。其中 my-copied-context 将拥有与 my-local-context 完全相同的 Docker 端点配置。

你可以切换到新上下文来验证其配置:

docker context use my-copied-context

再次列出上下文确认 my-copied-context 已成为活跃上下文:

docker context ls

你还可以使用 docker context inspect 命令查看新上下文的详细配置:

docker context inspect my-copied-context

这将显示上下文的详细信息,包括其配置使用的 Docker 端点。你会看到它和 my-local-context 一样配置为使用本地 Docker socket。

最后,为进行后续步骤,请切换回默认上下文:

docker context use default

基于现有上下文的 Docker 端点配置创建新上下文

在本步骤中,你将学习如何创建新的 Docker 上下文,并显式指定其 Docker 端点配置,同时可以参考其他上下文的配置信息。与上一步复制整个上下文的方式不同,这种方法能让你更精细地控制新上下文的配置。

首先,让我们列出已有上下文查看当前配置:

docker context ls

你应该能看到 defaultmy-local-contextmy-copied-context

现在我们将创建一个名为 my-explicit-context 的新上下文。使用 --docker 参数显式定义 Docker 端点(类似第一步的操作)。虽然本示例使用的是标准本地 socket,但你可以参考现有上下文(如 my-local-context)来获取正确的端点配置:

docker context create my-explicit-context --description "Context with explicit local endpoint" --docker "host=unix:///var/run/docker.sock"

我们还通过 --description 参数添加了描述信息,使上下文用途更加明确。

再次列出上下文查看新建的 my-explicit-context

docker context ls

现在你应该能看到 defaultmy-local-contextmy-copied-contextmy-explicit-context

切换到新上下文使其生效:

docker context use my-explicit-context

再次列出上下文确认 my-explicit-context 已成为活跃上下文:

docker context ls

你还可以检查 my-explicit-context 的配置详情,包括之前添加的描述信息:

docker context inspect my-explicit-context

这个示例展示了如何通过显式提供 Docker 端点配置来创建上下文,这种方法在连接远程 Docker 守护进程或需要精确控制连接参数时特别有用。

总结

在本实验中,你学习了如何使用 docker context create 命令管理 Docker 端点。你首先创建了一个名为 my-local-context 的新上下文,它显式指向本地 Docker 守护进程,并通过 --docker 参数和 socket 路径演示了如何定义连接。你练习了列出现有上下文、使用 docker context use 切换上下文以及验证当前活跃上下文。你还看到像 docker images 这样的 Docker 命令是如何在当前活跃上下文中执行的。

此外,你探索了如何利用现有上下文的配置来创建新上下文,这是基于现有连接设置进行扩展的便捷方法。这种方式可以高效管理和复用 Docker 端点配置。