将 docker context show 集成到 shell 提示符中
在这一步骤中,我们将把 docker context show
命令集成到你的 shell 提示符中。这样你就能直接在终端提示符中看到当前的 Docker 上下文(context),更方便地了解当前正在交互的是哪个 Docker 守护进程。
我们将修改你主目录中的 .zshrc
文件(Zsh shell 的配置文件),添加一个获取当前 Docker 上下文的函数,并将该函数的输出包含在提示字符串中。
首先,使用 nano
编辑器打开 .zshrc
文件:
nano ~/.zshrc
滚动到文件末尾,添加以下内容:
## Function to get current Docker context
get_docker_context() {
docker context show 2> /dev/null
}
## Add Docker context to prompt
PROMPT='$(get_docker_context) %~ %## '
让我们解析这些代码:
get_docker_context()
:定义了一个名为 get_docker_context
的新 shell 函数
docker context show 2>/dev/null
:在函数内部执行该命令获取当前 Docker 上下文。2>/dev/null
将错误输出重定向到 /dev/null
,避免当 Docker 未运行或出现问题时污染提示符
PROMPT='$(get_docker_context) %~ %## '
:设置 PROMPT
环境变量来定义 shell 提示符的显示格式
$(get_docker_context)
:执行 get_docker_context
函数并将输出包含在提示符中
%~
:显示当前工作目录(主目录会缩写为 ~
)
%#
:如果是 root 用户显示 #
,普通用户则显示 %
按 Ctrl + X
,然后按 Y
,最后按 Enter
保存文件。
要使更改在当前终端会话中生效,需要重新加载 .zshrc
文件:
source ~/.zshrc
重新加载后,你的 shell 提示符现在应该会在当前目录前显示当前 Docker 上下文(默认应该是 default
)。
你可以通过再次切换到 my-context
来测试这个功能:
docker context use my-context
你的提示符应该会更新显示 my-context
后跟当前目录。
然后再切换回默认上下文:
docker context use default
你的提示符应该会变回显示 default
。