首页/云/云与容器速查/docker context 多环境切换
容器与 Docker106 条

docker context 多环境切换

用 context 在本地、测试机、远程 Docker 主机之间切换 CLI 目标:每个 context 保存端点与证书;切换前务必 docker context show 确认,避免把命令打到生产。

云与容器速查云更新于 2026-10-13

docker context 是什么

context 是命令行客户端的目标环境选择器:它把连接的 Docker 守护进程地址、证书或 SSH 参数保存成一个命名配置,切换 context 就相当于切换“命令打到哪台机器”。同一台笔记本上同时管理本机、测试机与远程构建机时,它比反复设置环境变量更清晰。风险也在这里:切错环境后,删除与停止类命令会作用在错误的机器上,因此执行敏感操作前先确认当前 context。

基本信息

查看docker context ls,当前使用的 context 带星号标记
创建docker context create 名称 --docker "host=ssh://用户@地址",也可用证书方式
切换docker context use 名称,影响之后的所有命令
单次指定docker --context 名称 ps,只影响这一条命令
环境变量DOCKER_CONTEXT 可预设目标环境,适合脚本与流水线
影响范围docker 与 docker compose 命令都会作用在当前 context 上

典型使用场景

  • 本机开发与远程测试机之间频繁切换,避免反复改环境变量
  • 通过 SSH 连接远程构建机,本地只做代码编辑与命令下发
  • 流水线里用单次指定 context 的方式,避免并发任务互相干扰
  • 多台机器巡检:逐个切换并执行相同的检查命令
  • 临时查看某台服务器上的容器状态,用完立刻切回默认环境

使用示例

使用示例
docker context ls   # 列出全部环境,带星号的是当前环境
docker context create prod --docker "host=ssh://ops@10.0.0.5"   # 通过 SSH 建远程环境
docker context use prod   # 切换后所有命令都打到远程
docker --context prod ps   # 只让这一条命令走远程,更安全
docker context use default   # 用完切回本机
docker --context prod info --format '{{.ServerVersion}}'   # 确认目标端的版本

常见操作读法

命令作用注意
context ls列出可用环境星号标记当前环境
context create新建连接配置SSH 方式需先打通免密登录
context use切换全局默认环境影响所有后续命令
--context 参数单条命令指定环境脚本里优先使用这种方式
context 相当于服务器选择器:切错后删除、停止这类命令会落在错误环境上,执行前先 docker context ls 确认目标。
远程 SSH 连接遇到网络抖动会中断长任务:构建、推送这类操作建议放在终端复用工具里执行,断开后仍能回看结果。

易错点

  • 忘记切回默认 context:下一条命令在远程或生产环境执行,后果不可控
  • 脚本里用 use 切换而不是单次指定:并发执行时互相踩环境
  • SSH 免密未配置好:context 创建成功但连接失败,误判为服务端故障
  • 在远程 context 下以为镜像是本地的:看到的是远端镜像列表,排查结论出错
  • 把凭据与证书路径写死在共享脚本里:换人换机器即失效,还容易泄露访问信息

数据来源与参考

  • Docker Docs:docker context

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌