我正在运行docker,我希望bash
命令和参数完成docker
命令。
答案 0 :(得分:55)
如果您已经homebrew bash-completion
installed,只需将docker完成脚本安装到bash_completion.d
curl -XGET https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker > $(brew --prefix)/etc/bash_completion.d/docker
注意:如果您没有安装自制程序bash-completion
,请在执行上述行之前安装follow these instructions。
注意:完成取决于debian bash-completion中定义的某些功能。因此,仅按completion/bash/docker中所述获取docker完成脚本可能不起作用。如果您尝试完成docker run
(通过点击TAB),您可能会收到类似__ltrim_colon_completions: command not found
的错误消息。这可能意味着您尚未安装bash-completion脚本。
答案 1 :(得分:29)
官方Docker for Mac页面上有一节介绍如何安装bash:
https://docs.docker.com/docker-for-mac/#bash
如果您安装了Homebrew bash:
cd /usr/local/etc/bash_completion.d
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion
答案 2 :(得分:15)
Docker Beta附带完成脚本。我希望他们保持最新状态。所以,在OS X上......
符号链接文件
find /Applications/Docker.app \
-type f -name "*.bash-completion" \
-exec ln -s "{}" "$(brew --prefix)/etc/bash_completion.d/" \;
答案 3 :(得分:12)
对我而言,绊脚石是,一旦你酿造了bash-competion,你必须在你的.bash_profile中添加几行,以便在启动终端后加载它:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
来源: http://davidalger.com/development/bash-completion-on-os-x-with-brew/
因为我没有找到任何一步一步的文档,我已经制作了一个快速脚本来安装自制程序,bash-completion以及最终的docker完成脚本。 https://github.com/HypnoTheNomad/docker-bash-completion-macos-brew
答案 4 :(得分:5)
docker的自动完成不仅需要mac,还需要ubuntu / bash终端。
在Ubuntu中
curl -ksSL https://raw.githubusercontent.com/docker/docker/$(docker --version | awk 'NR==1{print $NF}')/contrib/completion/bash/docker |sudo tee /etc/bash_completion.d/docker
下次登录时即可完成。
由于谷歌的最高成绩我在这里添加了答案。
答案 5 :(得分:2)
Docker官方站点上有用于命令行完成的部分,对于Mac,该部分包含:
https://docs.docker.com/compose/completion/#mac
通过Homebrew为我提供了帮助:
brew install bash-completion
安装后,Brew显示安装路径。来自文档对我来说是正确的:
/usr/local/etc/bash_completion.d /
运行脚本:
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.25.4/contrib/completion/bash/docker-compose -o /usr/local/etc/bash_completion.d/docker-compose
打开并在文件~/.bash_profile
的末尾添加以下内容:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
重启终端。就这些。
答案 6 :(得分:1)
只是说:
如果您使用brew:
brew install docker
将尽你所能。它包含brew link docker
,用于将完成安装到`brew --prefix`/etc/bash_completion.d/docker
同一主题,docker-machine
,docker-compose
等的相同答案......
else(也许你正在使用Docker Beta(新的"更多原生"没有Virtualbox的docker安装包)你仍然需要手动添加它,然后按照Michael's answer加上看看附加docker-machine,docker-compose和一些shell-helper的完成脚本,在'script' from CodeCorrupt
中处理答案 7 :(得分:-1)
在Mac OSX上为ZSH设置自动完成功能的指南
如果您使用的是 oh-my-zsh ,并且自动填充功能不起作用,请按照以下步骤操作:
第1步:
建立以下三个链接:
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.zsh-completion /usr/local/share/zsh/site-functions/_docker
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.zsh-completion /usr/local/share/zsh/site-functions/_docker-machine
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose
第2步:
任一将autoload -Uz compinit; compinit
添加到.zshrc
或在您的Shell中运行echo "autoload -Uz compinit; compinit" >> .zshrc