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 连接遇到网络抖动会中断长任务:构建、推送这类操作建议放在终端复用工具里执行,断开后仍能回看结果。