How to add bash command completion for Docker on Mac OS X?

前端 未结 8 415
渐次进展
渐次进展 2021-02-01 13:24

I am running docker and I want bash command completion for docker commands and parameters.

相关标签:
8条回答
  • 2021-02-01 13:35

    The official Docker for Mac page has a section on installing bash completion:

    https://docs.docker.com/docker-for-mac/#bash

    If you have Homebrew bash completion installed:

    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
    
    0 讨论(0)
  • 2021-02-01 13:36

    If you have already homebrew bash-completion installed just install the docker completion script into the bash_completion.d

    curl -XGET https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker > $(brew --prefix)/etc/bash_completion.d/docker
    

    Note: If you do not have homebrew bash-completion installed, follow these instructions to install it before you execute the line above.

    Note: the completion depends on some functions defined in debian bash-completion. Therefore, just sourcing the docker completion script as described in completion/bash/docker may not work. If you try to complete docker run (by hitting TAB) you may get an error like __ltrim_colon_completions: command not found. This could mean that you have not installed the bash-completion scripts.

    0 讨论(0)
  • 2021-02-01 13:36

    The auto completion of docker needed not only for mac, its also needed for ubuntu / bash terminals.

    In Ubuntu

    curl -ksSL https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker |sudo tee /etc/bash_completion.d/docker
    

    Completion will be available upon next login.

    Since its top result in google I added answer here.

    0 讨论(0)
  • 2021-02-01 13:37

    Just to be said: if you use brew: brew install docker will do all what you need. It includes brew link docker which installs the completion into `brew --prefix`/etc/bash_completion.d/docker same topic, same answer for docker-machine, docker-compose, etc. ...

    else (perhaps you are using Docker Beta (new "more native" docker installation package without Virtualbox) you still have to add it manually, then follow Michael's answer plus have a look at the additional completion scripts for docker-machine, docker-compose and some shell-helper that are handled in the 'script' from CodeCorrupt

    0 讨论(0)
  • 2021-02-01 13:40

    Guide to setup autocomplete for ZSH on Mac OSX

    Follow these steps if you are using oh-my-zsh and autocomplete is not working:

    Step 1:

    Make the following three links:

    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-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose

    Step 2:

    Either add autoload -Uz compinit; compinit to .zshrc

    or run echo "autoload -Uz compinit; compinit" >> .zshrc in your shell

    0 讨论(0)
  • 2021-02-01 13:43

    The completion scripts come with Docker Beta. I want them to stay up to date. So, on OS X...

    • Install homebrew's bash-completion
    • Symlink the files

      find /Applications/Docker.app \
      -type f -name "*.bash-completion" \
      -exec ln -s "{}" "$(brew --prefix)/etc/bash_completion.d/" \;
      
    0 讨论(0)
提交回复
热议问题