Docker alias for your zsh

Published 04-11-2017 00:00:00

Some docker alias to import on your shell

echo "# Importing Docker Aliases"
# ------------------------------------ Docker alias and function ------------------------------------

# Get latest container ID
alias dl="docker ps -l -q"

# Docker ps
alias dps="docker ps"
alias dpsa="docker ps -a"

# Get container IP
alias dip="docker inspect --format '{{ .NetworkSettings.IPAddress }}'"

# docker inspect
di() { docker inspect $1; }

# Execute interactive container, e.g., $dex base /bin/bash
alias dexec="docker exec -i -t"

# Stop all containers
dstop() { docker stop $(docker ps -a -q); }

# Remove all containers
drm() { docker rm $(docker ps -a -q); }

# Stop and Remove all containers
alias drmf='docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)'

# Remove all images
dri() { docker rmi $(docker images -q); }

# Dockerfile build, e.g., $dbu tcnksm/test
dbuild() { docker build --no-cache -t=$1 .; }

# Show all alias related docker
dalias() { cat ~/.zshrc.d/docker | grep 'docker' | sort; }

# Tail container logs
dtail(){docker logs -f $1;}

#  Bash inside a container
dbash(){docker exec -i -t $1 /bin/busybox /bin/bash;}

# Tag container
dtag(){docker tag -f  $1 $2;}

# Remove clean container
dclean() { docker kill $1 && docker rm $1; }

# Docker machine
alias dm='docker-machine'

# Eval the docker machine env
deval() {eval $(docker-machine env $1)}

# Eval the docker machine env
registryrepo() {curl --silent --user LOGIN:PASS  https://docker.myregisty.net/v2/_catalog | jq}
registrycat() {curl --silent --user LOGIN:PASS  https://docker.myregisty.net/v2/$1/tags/list  | jq}

#ecr-login(){aws ecr get-login --no-include-email;}
ecr-login(){eval $(aws ecr get-login --no-include-email;)}
ecr-create(){aws ecr create-repository --repository-name $1;}

dcleanup(){
    docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
    docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}