介绍
在本实验中,你将学习如何使用 docker context use 命令管理和切换不同的 Docker 上下文(context)。Docker 上下文允许你轻松连接到各种 Docker 守护进程(daemon),无论是本地还是远程环境。
首先,你将列出可用的 Docker 上下文,以了解当前配置。接着,你将创建一个新的 Docker 上下文(即使它指向同一个本地守护进程),以此练习创建流程。最后,你将学习如何切换到新创建的上下文,然后再切换回默认上下文,从而掌握 docker context use 的核心功能。
列出可用的 Docker 上下文
在这一步骤中,我们将学习如何列出可用的 Docker 上下文(context)。Docker 上下文是一种连接到不同 Docker 守护进程(daemon)的方式。默认情况下,Docker 会连接到本地守护进程,但你也可以创建上下文来连接远程守护进程或其他环境。
要列出可用的 Docker 上下文,你可以使用 docker context ls 命令。该命令会显示一个表格,包含每个上下文的名称、描述、Docker 端点(endpoint)和编排器(orchestrator)信息。上下文名称旁边的星号(*)表示当前激活的上下文。
让我们列出你环境中的可用 Docker 上下文。
docker context ls
你应该会看到类似以下的输出:
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
该输出显示你当前有一个名为 default 的上下文,这是激活的上下文,通过 Unix 套接字 /var/run/docker.sock 连接到本地 Docker 守护进程。
创建新的 Docker 上下文
在这一步骤中,我们将创建一个新的 Docker 上下文(context)。虽然本实验不会连接到远程守护进程,但创建上下文是一项基础技能。我们将创建一个指向与默认上下文相同本地 Docker 守护进程的上下文,但使用不同的名称。这将帮助我们理解创建和切换上下文的过程。
要创建新的 Docker 上下文,你需要使用 docker context create 命令,后跟你想为新上下文指定的名称。你还需要指定 Docker 守护进程的端点(endpoint)。在本示例中,我们将创建一个名为 my-local-context 的上下文,它通过 Unix 套接字 /var/run/docker.sock 指向本地 Docker 守护进程。
让我们创建新上下文:
docker context create my-local-context --docker "host=unix:///var/run/docker.sock"
你应该会看到确认上下文创建的输出:
my-local-context
Successfully created context "my-local-context"
现在,让我们再次列出上下文以查看新创建的上下文。
docker context ls
输出现在将显示 default 上下文和你新创建的 my-local-context。
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
my-local-context unix:///var/run/docker.sock
注意 default 上下文仍然标有星号(*),表示它是当前激活的上下文。
使用新的 Docker 上下文
在这一步骤中,我们将切换到上一步创建的新 Docker 上下文(context)。切换上下文可以让你将 Docker 命令指向不同的 Docker 守护进程(daemon)。
要切换到不同的 Docker 上下文,你需要使用 docker context use 命令,后跟你想使用的上下文名称。
让我们切换到之前创建的 my-local-context:
docker context use my-local-context
你应该会看到确认上下文已设置的输出:
Current context is now "my-local-context"
现在,让我们再次列出上下文以查看哪个是当前激活的。
docker context ls
输出现在会显示 my-local-context 是激活的上下文,由星号(*)标识。
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
my-local-context * unix:///var/run/docker.sock
虽然在这个例子中两个上下文都指向同一个本地 Docker 守护进程,但你已经成功切换了 Docker 命令将要使用的上下文。
切换回默认上下文
在这最后一步中,我们将切换回默认的 Docker 上下文(context)。当你完成特定上下文的工作并希望返回常规 Docker 环境时,这是一个常见操作。
要切换回默认上下文,你同样使用 docker context use 命令,但这次需要指定 default 作为上下文名称。
让我们切换回 default 上下文:
docker context use default
你应该会看到确认上下文已切换回默认的输出:
Current context is now "default"
最后,让我们再次列出上下文以确认 default 上下文现在是激活状态。
docker context ls
输出将再次显示 default 上下文旁带有星号(*)标记。
NAME DESCRIPTION DOCKER ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST environment unix:///var/run/docker.sock swarm
my-local-context unix:///var/run/docker.sock
你已经成功完成了 Docker 上下文的查看、创建、使用以及切换回默认上下文的全过程。掌握这些基础知识对于在不同 Docker 环境中工作至关重要。
总结
在本实验中,我们学习了如何管理 Docker 上下文(context)。首先使用 docker context ls 命令列出了可用上下文,查看了默认上下文及其连接详情。接着通过 docker context create 命令创建了一个名为 my-local-context 的新上下文,演示了定义新连接点的过程(尽管本次练习中连接的是同一个本地守护进程)。
创建新上下文后,我们通常会学习如何使用 docker context use 命令切换到该新上下文,使其成为后续 Docker 命令的活跃上下文。最后,我们练习了切换回原始默认上下文,巩固了关于如何使用上下文在不同 Docker 环境间切换的知识。



