From 8a4333103dc990400a5d800a49f48418d6a53449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20VANTOMME?= Date: Thu, 13 Apr 2017 12:14:23 +0200 Subject: [PATCH] Feat (docker): add docker aliases (#1147) Thanks to @malikoth and @saoula for their input. --- modules/docker/README.md | 190 +++++++++++++++++++++++++++++++++++++++ modules/docker/alias.zsh | 177 ++++++++++++++++++++++++++++++++++++ modules/docker/init.zsh | 57 ++++++++++++ 3 files changed, 424 insertions(+) create mode 100644 modules/docker/README.md create mode 100644 modules/docker/alias.zsh create mode 100644 modules/docker/init.zsh diff --git a/modules/docker/README.md b/modules/docker/README.md new file mode 100644 index 0000000..335f77a --- /dev/null +++ b/modules/docker/README.md @@ -0,0 +1,190 @@ +# ZSH Docker Aliases + +Defines [Docker][1] aliases and functions. + +## Aliases + +### Docker + +- `dk` is short for `docker` +- `dka` Attach to a running container +- `dkb` Build an image from a Dockerfile +- `dkd` Inspect changes on a container's filesystem +- `dkdf` Show docker filesystem usage +- `dke` Run a command in a running container +- `dkE` Run an interactive command in a running container +- `dkh` Show the history of an image +- `dki` List images +- `dkin` Return low-level information on a container, image or task +- `dkk` Kill a running container +- `dkl` Fetch the logs of a container +- `dkli` Log in to a Docker registry +- `dklo` Log out from a Docker registry +- `dkls` is alias for `dkps` +- `dkp` Pause all processes within one or more containers +- `dkP` Unpause all processes within one or more containers +- `dkpl` Pull an image or a repository from a registry +- `dkph` Push an image or a repository to a registry +- `dkps` List containers +- `dkpsa` List all containers (default lists just running) +- `dkr` Run a command in a new container +- `dkR` Run an interactive command in a new container and automatically remove the container when it exits +- `dkRe` like `dkR` and set entry point to `/bin/bash` +- `dkrm` Remove one or more containers +- `dkrmi` Remove one or more images +- `dkrmC` Clean up exited containers +- `dkrmI` Clean up dangling images +- `dkrmV` Clean up unused volumes ( Docker >= 1.9 ) +- `dkrn` Rename a container +- `dks` Start one or more stopped containers +- `dkS` Restart a container +- `dkss` Display a live stream of container(s) resource usage statistics +- `dksv` Save one or more images to a tar archive (streamed to STDOUT by default) +- `dkt` Tag an image into a repository +- `dktop` Display the running processes of a container +- `dkup` Update configuration of one or more containers +- `dkV` Manage Docker volumes +- `dkv` Show the Docker version information +- `dkw` Block until a container stops, then print its exit code +- `dkx` Stop a running container + +#### container (C) + +- `dkC` Manage containers +- `dkCa` Attach to a running container +- `dkCcp` Copy files/folders between a container and the local filesystem +- `dkCd` Inspect changes on a container's filesystem +- `dkCe` Run a command in a running container +- `dkCin` Display detailed information on one or more containers +- `dkCk` Kill one or more running containers +- `dkCl` Fetch the logs of a container +- `dkCls` List containers +- `dkCp` Pause all processes within one or more containers +- `dkCpr` Remove all stopped containers +- `dkCrn` Rename a container +- `dkCS` Restart one or more containers +- `dkCrm` Remove one or more containers +- `dkCr` Run a command in a new container +- `dkCR` Run an interactive command in a new container and automatically remove the container when it exits +- `dkCRe` like `dkCR` and set entry point to `/bin/bash` +- `dkCs` Start one or more stopped containers +- `dkCss` Display a live stream of container(s) resource usage statistics +- `dkCx` Stop one or more running containers +- `dkCtop` Display the running processes of a container +- `dkCP` Unpause all processes within one or more containers +- `dkCup` Update configuration of one or more containers +- `dkCw` Block until one or more containers stop, then print their exit codes + +#### image (I) + +- `dkI` Manage images +- `dkIb` Build an image from a Dockerfile +- `dkIh` Show the history of an image +- `dkIim` Import the contents from a tarball to create a filesystem image +- `dkIin` Display detailed information on one or more images +- `dkIls` List images +- `dkIpr` Remove unused images +- `dkIpl` Pull an image or a repository from a registry +- `dkIph` Push an image or a repository to a registry +- `dkIrm` Remove one or more images +- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by default) +- `dkIt` Tag an image into a repository + +#### volume (V) + +- `dkV` Manage volumes +- `dkVin` Display detailed information on one or more volumes +- `dkVls` List volumes +- `dkVpr` Remove all unused volumes +- `dkVrm` Remove one or more volumes + +#### network (N) + +- `dkN` Manage networks +- `dkNs` Connect a container to a network +- `dkNx` Disconnects a container from a network +- `dkNin` Displays detailed information on a network +- `dkNls` Lists all the networks created by the user +- `dkNpr` Remove all unused networks +- `dkNrm` Deletes one or more networks + +#### system (Y) + +- `dkY` Manage Docker +- `dkYdf` Show docker filesystem usage +- `dkYpr` Remove unused data + +#### stack (K) + +- `dkK` Manage Docker stacks +- `dkKls` List stacks +- `dkKps` List the tasks in the stack +- `dkKrm` Remove the stack + +#### swarm (W) + +- `dkW` Manage Docker Swarm + +### Docker Machine + +- `dkm` is short for `docker-machine` +- `dkma` Get or set the active machine +- `dkmcp` Copy files between machines +- `dkmd` Set up the default machine ; alowing you to use `dkme` without arguments +- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to toggle to staging) +- `dkmin` Inspect information about a machine +- `dkmip` Get the IP address of a machine +- `dkmk` Kill a machine +- `dkmls` List machines +- `dkmpr` Re-provision existing machines +- `dkmps` is alias for `dkmls` +- `dkmrg` Regenerate TLS Certificates for a machine +- `dkmrm` Remove a machine +- `dkms` Start a machine +- `dkmsh` Log into or run a command on a machine with SSH +- `dkmst` Get the status of a machine +- `dkmS` Restart a machine +- `dkmu` Get the URL of a machine +- `dkmup` Upgrade a machine to the latest version of Docker +- `dkmV` Show the Docker Machine version or a machine docker version +- `dkmx` Stop a machine + +### Docker Compose + +- `dkc` is short for `docker-compose` +- `dkcb` Build or rebuild services +- `dkcB` Build or rebuild services and do not use cache when building the image +- `dkcd` Stop and remove containers, networks, images, and volumes +- `dkce` Execute a command in a running container +- `dkck` Kill containers +- `dkcl` View output from containers +- `dkcls` is alias for `dkcps` +- `dkcp` Pause services +- `dkcP` Unpause services +- `dkcpl` Pull service images +- `dkcph` Push service images +- `dkcps` List containers +- `dkcr` Run a one-off command +- `dkcR` Run a one-off command and remove container after run. +- `dkcrm` Remove stopped containers +- `dkcs` Start services +- `dkcsc` Set number of containers for a service +- `dkcS` Restart services +- `dkcu` Create and start containers +- `dkcU` Create and start containers in detached mode: + Run containers in the background, print new container names +- `dkcV` Show the Docker-Compose version information +- `dkcx` Stop services + +## Support + +If you're having problems, use the [Prezto issue tracker][2]. + +## Acknowledgements + +This module is a copy of [akarzim/zsh-docker-aliases][3] by [François Vantomme][4] (MIT License). + +[1]: https://www.docker.com/ +[2]: https://github.com/zsh-users/prezto/issues +[3]: https://github.com/akarzim/zsh-docker-aliases +[4]: https://github.com/akarzim diff --git a/modules/docker/alias.zsh b/modules/docker/alias.zsh new file mode 100644 index 0000000..cdd9f7c --- /dev/null +++ b/modules/docker/alias.zsh @@ -0,0 +1,177 @@ +# +# Defines Docker aliases. +# +# Author: +# François Vantomme +# + +# +# Aliases +# + +# Docker +alias dk='docker' +alias dka='docker attach' +alias dkb='docker build' +alias dkd='docker diff' +alias dkdf='docker system df' +alias dke='docker exec' +alias dkE='docker exec -it' +alias dkh='docker history' +alias dki='docker images' +alias dkin='docker inspect' +alias dkim='docker import' +alias dkk='docker kill' +alias dkl='docker logs' +alias dkli='docker login' +alias dklo='docker logout' +alias dkls='docker ps' +alias dkp='docker pause' +alias dkP='docker unpause' +alias dkpl='docker pull' +alias dkph='docker push' +alias dkps='docker ps' +alias dkpsa='docker ps -a' +alias dkr='docker run' +alias dkR='docker run -it --rm' +alias dkRe='docker run -it --rm --entrypoint /bin/bash' +alias dkRM='docker system prune' +alias dkrm='docker rm' +alias dkrmi='docker rmi' +alias dkrn='docker rename' +alias dks='docker start' +alias dkS='docker restart' +alias dkss='docker stats' +alias dksv='docker save' +alias dkt='docker tag' +alias dktop='docker top' +alias dkup='docker update' +alias dkV='docker volume' +alias dkv='docker version' +alias dkw='docker wait' +alias dkx='docker stop' + +## Container (C) +alias dkC='docker container' +alias dkCa='docker container attach' +alias dkCcp='docker container cp' +alias dkCd='docker container diff' +alias dkCe='docker container exec' +alias dkCin='docker container inspect' +alias dkCk='docker container kill' +alias dkCl='docker container logs' +alias dkCls='docker container ls' +alias dkCp='docker container pause' +alias dkCpr='docker container prune' +alias dkCrn='docker container rename' +alias dkCS='docker container restart' +alias dkCrm='docker container rm' +alias dkCr='docker container run' +alias dkCR='docker container run -it --rm' +alias dkCRe='docker container run -it --rm --entrypoint /bin/bash' +alias dkCs='docker container start' +alias dkCss='docker container stats' +alias dkCx='docker container stop' +alias dkCtop='docker container top' +alias dkCP='docker container unpause' +alias dkCup='docker container update' +alias dkCw='docker container wait' + +## Image (I) +alias dkI='docker image' +alias dkIb='docker image build' +alias dkIh='docker image history' +alias dkIim='docker image import' +alias dkIin='docker image inspect' +alias dkIls='docker image ls' +alias dkIpr='docker image prune' +alias dkIpl='docker image pull' +alias dkIph='docker image push' +alias dkIrm='docker image rm' +alias dkIsv='docker image save' +alias dkIt='docker image tag' + +## Volume (V) +alias dkV='docker volume' +alias dkVin='docker volume inspect' +alias dkVls='docker volume ls' +alias dkVpr='docker volume prune' +alias dkVrm='docker volume rm' + +## Network (N) +alias dkN='docker network' +alias dkNs='docker network connect' +alias dkNx='docker network disconnect' +alias dkNin='docker network inspect' +alias dkNls='docker network ls' +alias dkNpr='docker network prune' +alias dkNrm='docker network rm' + +## System (Y) +alias dkY='docker system' +alias dkYdf='docker system df' +alias dkYpr='docker system prune' + +## Stack (K) +alias dkK='docker stack' +alias dkKls='docker stack ls' +alias dkKps='docker stack ps' +alias dkKrm='docker stack rm' + +## Swarm (W) +alias dkW='docker swarm' + +## CleanUp (rm) +# Clean up exited containers (docker < 1.13) +alias dkrmC='docker rm $(docker ps -qaf status=exited)' +# Clean up dangling images (docker < 1.13) +alias dkrmI='docker rmi $(docker images -qf dangling=true)' +# Clean up dangling volumes (docker < 1.13) +alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)' + + +# Docker Machine (m) +alias dkm='docker-machine' +alias dkma='docker-machine active' +alias dkmcp='docker-machine scp' +alias dkmin='docker-machine inspect' +alias dkmip='docker-machine ip' +alias dkmk='docker-machine kill' +alias dkmls='docker-machine ls' +alias dkmpr='docker-machine provision' +alias dkmps='docker-machine ps' +alias dkmrg='docker-machine regenerate-certs' +alias dkmrm='docker-machine rm' +alias dkms='docker-machine start' +alias dkmsh='docker-machine ssh' +alias dkmst='docker-machine status' +alias dkmS='docker-machine restart' +alias dkmu='docker-machine url' +alias dkmup='docker-machine upgrade' +alias dkmv='docker-machine version' +alias dkmx='docker-machine stop' + +# Docker Compose (c) +alias dkc='docker-compose' +alias dkcb='docker-compose build' +alias dkcB='docker-compose build --no-cache' +alias dkcd='docker-compose down' +alias dkce='docker-compose exec' +alias dkck='docker-compose kill' +alias dkcl='docker-compose logs' +alias dkcls='docker-compose ps' +alias dkcp='docker-compose pause' +alias dkcP='docker-compose unpause' +alias dkcpl='docker-compose pull' +alias dkcph='docker-compose push' +alias dkcps='docker-compose ps' +alias dkcr='docker-compose run' +alias dkcR='docker-compose run --rm' +alias dkcrm='docker-compose rm' +alias dkcs='docker-compose start' +alias dkcsc='docker-compose scale' +alias dkcS='docker-compose restart' +alias dkcu='docker-compose up' +alias dkcU='docker-compose up -d' +alias dkcv='docker-compose version' +alias dkcx='docker-compose stop' diff --git a/modules/docker/init.zsh b/modules/docker/init.zsh new file mode 100644 index 0000000..8ad6bfd --- /dev/null +++ b/modules/docker/init.zsh @@ -0,0 +1,57 @@ +# +# Defines Docker aliases. +# +# Author: +# François Vantomme +# + +# Return if requirements are not found. +if (( ! $+commands[docker] )); then + return 1 +fi + +# +# Functions +# + +# Set Docker Machine environment +function dkme { + if (( ! $+commands[docker-machine] )); then + return 1 + fi + + eval $(docker-machine env $1) +} + +# Set Docker Machine default machine +function dkmd { + if (( ! $+commands[docker-machine] )); then + return 1 + fi + + pushd ~/.docker/machine/machines + + if [[ ! -d $1 ]]; then + echo "Docker machine '$1' does not exists. Abort." + popd + return 1 + fi + + if [[ -L default ]]; then + eval $(rm -f default) + elif [[ -d default ]]; then + echo "A default machine already exists. Abort." + popd + return 1 + elif [[ -e default ]]; then + echo "A file named 'default' already exists. Abort." + popd + return 1 + fi + + eval $(ln -s $1 default) + popd +} + +# Source module files. +source "${0:h}/alias.zsh"