Windows 版 Bash 中的 Docker 镜像和容器名称补全

Windows 版 Bash 中的 Docker 镜像和容器名称补全

我有适用于 Windows 的 Docker,最近开始使用适用于 Windows 的 Bash。我设法通过向文件中添加以下几行来使 Bash 中的 Docker 显示来自 Windows 的容器和图像.bashrc

PATH="$HOME/bin:$HOME/.local/bin:$PATH"
PATH="$PATH:/mnt/c/Program\ Files/Docker/Docker/resources/bin"

(所以我没有使用apt-get install

我也.bashrc像这样声明了一个别名:alias docker='docker.exe'

现在,当我输入时,docker ps它将显示在我的窗口上运行的容器。

一开始,我根本没有命令完成功能。输入docker lo完后按 Tab 键没有任何反应(而不是完成,docker logs例如,所以我用 Google 搜索并偶然发现了以下命令:

sudo curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker

现在我已经完成了命令,但没有完成图像和容器名称。

有什么办法可以让它工作吗?我应该直接在 ubuntu 子系统上安装 docker 吗?

(我不确定这是否是适合这个问题的 stackexchange 或 askubuntu。如果我应该在其他地方询问这个问题,请告诉我)

答案1

您可以安装扎什

将完成脚本放在您的/path/to/zsh/completion(通常为~/.zsh/completion/)

$ mkdir -p ~/.zsh/completion
$ curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose

$fpath通过添加以下内容将目录包含到您的目录中~/.zshrc

fpath=(~/.zsh/completion $fpath)

确保compinit已加载或通过添加以下内容进行加载~/.zshrc

autoload -Uz compinit && compinit -i

然后重新加载你的 shell:

exec $SHELL -l


原文来源:https://docs.docker.com/compose/completion/#zsh

相关内容