自動補全

您可以使用 docker completion 命令為 Docker CLI 生成一個 shell 自動補全指令碼。當您在終端中輸入時,按 <Tab> 鍵,該自動補全指令碼會為您提供命令、標誌和 Docker 物件(例如容器和卷名稱)的單詞補全。

您可以為以下 shell 生成自動補全指令碼

Bash

要在 Bash 中實現 Docker CLI 的自動補全,您首先需要安裝 bash-completion 包,該包包含許多用於 shell 自動補全的 Bash 函式。

# Install using APT:
sudo apt install bash-completion

# Install using Homebrew (Bash version 4 or later):
brew install bash-completion@2
# Homebrew install for older versions of Bash:
brew install bash-completion

# With pacman:
sudo pacman -S bash-completion

安裝 bash-completion 後,在您的 shell 配置檔案中(本例中為 .bashrc)載入該指令碼

# On Linux:
cat <<EOT >> ~/.bashrc
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi
EOT

# On macOS / with Homebrew:
cat <<EOT >> ~/.bash_profile
[[ -r "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]] && . "$(brew --prefix)/etc/profile.d/bash_completion.sh"
EOT

然後重新載入您的 shell 配置

$ source ~/.bashrc

現在,您可以使用 docker completion 命令生成 Bash 自動補全指令碼

$ mkdir -p ~/.local/share/bash-completion/completions
$ docker completion bash > ~/.local/share/bash-completion/completions/docker

Zsh

只要自動補全可以透過 FPATH 載入,Zsh 自動補全系統 就會處理好一切。

如果您使用 Oh My Zsh,可以將自動補全指令碼儲存在 ~/.oh-my-zsh/completions 目錄中,無需修改 ~/.zshrc 即可安裝自動補全。

$ mkdir -p ~/.oh-my-zsh/completions
$ docker completion zsh > ~/.oh-my-zsh/completions/_docker

如果您不使用 Oh My Zsh,請將自動補全指令碼儲存在您選擇的目錄中,並在您的 .zshrc 中將該目錄新增到 FPATH

$ mkdir -p ~/.docker/completions
$ docker completion zsh > ~/.docker/completions/_docker
$ cat <<"EOT" >> ~/.zshrc
FPATH="$HOME/.docker/completions:$FPATH"
autoload -Uz compinit
compinit
EOT

Fish

fish shell 原生支援自動補全系統。要為 Docker 命令啟用自動補全,請將自動補全指令碼複製或符號連結到您的 fish shell 的 completions/ 目錄

$ mkdir -p ~/.config/fish/completions
$ docker completion fish > ~/.config/fish/completions/docker.fish