ohmyzsh/plugins/docker/docker.plugin.zsh
Andrei Polushin 73c4764e78
fix(docker): use docker --version instead of docker version
`docker version` subcommand is able to return both docker client and
docker daemon information.  To get a daemon version, it connects to a
possibly remote daemon.  If the remote daemon is not accessible, the
client waits for some time, until it gets interrupted by timeout.

As a result we can have a docker client running in background. When zsh
session is rather short, a terminal application (iTerm2) starts asking
if that background docker process should be stopped.

On the other hand, to get a docker client version only, we can use
`docker --version` instead. It does not connect to a daemon.

Closes #11780
2023-06-29 13:26:08 +02:00

55 lines
1.8 KiB
Bash

alias dbl='docker build'
alias dcin='docker container inspect'
alias dcls='docker container ls'
alias dclsa='docker container ls -a'
alias dib='docker image build'
alias dii='docker image inspect'
alias dils='docker image ls'
alias dipu='docker image push'
alias dirm='docker image rm'
alias dit='docker image tag'
alias dlo='docker container logs'
alias dnc='docker network create'
alias dncn='docker network connect'
alias dndcn='docker network disconnect'
alias dni='docker network inspect'
alias dnls='docker network ls'
alias dnrm='docker network rm'
alias dpo='docker container port'
alias dpu='docker pull'
alias dr='docker container run'
alias drit='docker container run -it'
alias drm='docker container rm'
alias 'drm!'='docker container rm -f'
alias dst='docker container start'
alias drs='docker container restart'
alias dsta='docker stop $(docker ps -q)'
alias dstp='docker container stop'
alias dtop='docker top'
alias dvi='docker volume inspect'
alias dvls='docker volume ls'
alias dvprune='docker volume prune'
alias dxc='docker container exec'
alias dxcit='docker container exec -it'
if (( ! $+commands[docker] )); then
return
fi
{
# docker version returns `Docker version 24.0.2, build cb74dfcd85`
# with `s:,:` remove the comma after the version, and select third word of it
local _docker_version=${${(s:,:z)"$(command docker --version)"}[3]}
# `docker completion` is only available from 23.0.0 on
if is-at-least 23.0.0 $_docker_version; then
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `docker`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then
typeset -g -A _comps
autoload -Uz _docker
_comps[docker]=_docker
fi
command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker"
fi
} &|