命令发去了哪个环境
命令发去了错误的环境:当前指向的上下文可能是远端或桌面版,环境变量的优先级更高。排查开始时先确认操作对象,在 A 机器上找 B 机器的容器会浪费大量时间。
基本信息
| 查看 | 列出上下文并显示当前指向 |
|---|---|
| 切换 | 切回默认上下文 |
| 优先级 | 环境变量高于上下文设置 |
| 影响范围 | 容器、镜像、网络等所有操作 |
| 常见来源 | CI 会话残留与多环境共存 |
典型使用场景
- 命令执行结果与预期不符时先确认对象环境
- CI 里设置过连接地址的会话切回本地后行为异常
- 多环境共存时避免误操作生产
- 报权限错误时核对上下文与鉴权配置
- 交接环境中记录当前默认指向
确认与切换
确认与切换
docker context ls # 列出上下文与当前指向
docker context show # 只看当前上下文
docker context use default # 切回默认
echo "DOCKER_HOST=$DOCKER_HOST" # 检查环境变量是否覆盖关注点与异常表现
| 关注点 | 正常表现 | 异常表现 |
|---|---|---|
| 当前上下文 | 与预期环境一致 | 指向远端或桌面版 |
| 环境变量 | 未设置或无冲突 | 覆盖了上下文设置 |
| 鉴权配置 | 与目标环境匹配 | 报权限或证书错误 |
| 会话状态 | 每次操作前确认 | 沿用上一次的残留 |
排障开始时先确认操作对象:在 A 机器上找 B 机器的容器会浪费大量时间。
CI 里设置过连接地址的会话切回本地时记忆残留,先打印环境变量再操作。
不同上下文的鉴权与证书互相独立,报权限错误时也要核对上下文。
环境变量的优先级高于上下文,两者同时存在时以环境变量为准。
把常用环境的上下文命名规范化,能减少选错环境的概率。
脚本里最好显式指定目标环境,避免依赖当前默认指向。
把当前上下文与环境变量一并打印到排查记录里,是成本很低但很有用的一步,事后复盘也能少一轮猜测。