From ed79936529a0209032318e9a2f2480808ced7d34 Mon Sep 17 00:00:00 2001 From: "Kevin S. Clarke" Date: Thu, 22 Jan 2015 10:23:00 -0500 Subject: [PATCH 1/2] Added Docker aliases and functions --- aliases/available/docker.aliases.bash | 16 ++++++++++ plugins/available/docker.plugin.bash | 42 ++++++++++++++++++++++++++- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 aliases/available/docker.aliases.bash diff --git a/aliases/available/docker.aliases.bash b/aliases/available/docker.aliases.bash new file mode 100644 index 00000000..82b7c84c --- /dev/null +++ b/aliases/available/docker.aliases.bash @@ -0,0 +1,16 @@ +cite 'about-alias' +about-alias 'docker abbreviations' + +alias dklc='docker ps -l' # List last Docker container +alias dklcid='docker ps -l -q' # List last Docker container ID +alias dklcip="docker inspect `dklcid` | grep IPAddress | cut -d '\"' -f 4" # Get IP of last Docker container +alias dkps='docker ps' # List running Docker containers +alias dkpsa='docker ps -a' # List all Docker containers +alias dki='docker images' # List Docker images +alias dkrmac='docker rm $(docker ps -a -q)' # Delete all Docker containers +alias dkrmlc='docker-remove-most-recent-container' # Delete most recent (i.e., last) Docker container +alias dkrmui='docker rmi $(docker images | grep "^" | awk "{print $3}")' # Delete all untagged Docker images +alias dkrmli='docker-remove-most-recent-image' # Delete most recent (i.e., last) Docker image +alias dkrmi='docker_remove_images' # Delete images for supplied IDs or all if no IDs are passed as arguments +alias dkideps='docker_image_dependencies' # Output a graph of image dependencies using Graphiz +alias dkre='docker_runtime_environment' # List environmental variables of the supplied image ID \ No newline at end of file diff --git a/plugins/available/docker.plugin.bash b/plugins/available/docker.plugin.bash index 131f608f..4582cd81 100644 --- a/plugins/available/docker.plugin.bash +++ b/plugins/available/docker.plugin.bash @@ -1,5 +1,5 @@ cite about-plugin -about-plugin 'Helpers to get Docker setup correctly for boot2docker' +about-plugin 'Helpers to get Docker setup correctly for boot2docker and to more easily work with Docker' # Note, this might need to be different if you have an older version # of boot2docker, or its configured for a different IP @@ -23,3 +23,43 @@ function docker-remove-most-recent-image() { group 'docker' docker images | head -2 | tail -1 | awk '{print $3}' | xargs docker rmi } + +function docker_remove_images() { + about 'attempt to remove images with supplied tags or all if no tags are supplied' + group 'docker' + if [ -z "$1" ]; then + docker rmi $(docker images -q) + else + DOCKER_IMAGES="" + for IMAGE_ID in $@; do DOCKER_IMAGES="$DOCKER_IMAGES\|$IMAGE_ID"; done + # Find the image IDs for the supplied tags + ID_ARRAY=($(docker images | grep "${DOCKER_IMAGES:2}" | awk {'print $3'})) + # Strip out duplicate IDs before attempting to remove the image(s) + docker rmi $(echo ${ID_ARRAY[@]} | tr ' ' '\n' | sort -u | tr '\n' ' ') + fi +} + +function docker_image_dependencies() { + about 'attempt to create a Graphiz image of the supplied image ID dependencies' + group 'docker' + if hash dot 2>/dev/null; then + OUT=$(mktemp -t docker-viz-XXXX.png) + docker images -viz | dot -Tpng > $OUT + case $OSTYPE in + linux*) + xdg-open $OUT + ;; + darwin*) + open $OUT + ;; + esac + else + >&2 echo "Can't show dependencies; Graphiz is not installed" + fi +} + +function docker_runtime_environment() { + about 'attempt to list the environmental variables of the supplied image ID' + group 'docker' + docker run "$@" env +} \ No newline at end of file From ef0f7ebc42a3544e0c56db5068f0f09a917ae358 Mon Sep 17 00:00:00 2001 From: "Kevin S. Clarke" Date: Tue, 27 Jan 2015 15:14:18 -0500 Subject: [PATCH 2/2] Updated undescores to dashes and added new alias --- aliases/available/docker.aliases.bash | 7 ++++--- plugins/available/docker.plugin.bash | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/aliases/available/docker.aliases.bash b/aliases/available/docker.aliases.bash index 82b7c84c..24c21f5b 100644 --- a/aliases/available/docker.aliases.bash +++ b/aliases/available/docker.aliases.bash @@ -11,6 +11,7 @@ alias dkrmac='docker rm $(docker ps -a -q)' # Delete all Docker containers alias dkrmlc='docker-remove-most-recent-container' # Delete most recent (i.e., last) Docker container alias dkrmui='docker rmi $(docker images | grep "^" | awk "{print $3}")' # Delete all untagged Docker images alias dkrmli='docker-remove-most-recent-image' # Delete most recent (i.e., last) Docker image -alias dkrmi='docker_remove_images' # Delete images for supplied IDs or all if no IDs are passed as arguments -alias dkideps='docker_image_dependencies' # Output a graph of image dependencies using Graphiz -alias dkre='docker_runtime_environment' # List environmental variables of the supplied image ID \ No newline at end of file +alias dkrmi='docker-remove-images' # Delete images for supplied IDs or all if no IDs are passed as arguments +alias dkideps='docker-image-dependencies' # Output a graph of image dependencies using Graphiz +alias dkre='docker-runtime-environment' # List environmental variables of the supplied image ID +alias dkelc='docker exec -it `dklcid` bash' # Enter last container (works with Docker 1.3 and above) diff --git a/plugins/available/docker.plugin.bash b/plugins/available/docker.plugin.bash index 4582cd81..22087053 100644 --- a/plugins/available/docker.plugin.bash +++ b/plugins/available/docker.plugin.bash @@ -24,7 +24,7 @@ function docker-remove-most-recent-image() { docker images | head -2 | tail -1 | awk '{print $3}' | xargs docker rmi } -function docker_remove_images() { +function docker-remove-images() { about 'attempt to remove images with supplied tags or all if no tags are supplied' group 'docker' if [ -z "$1" ]; then @@ -39,7 +39,7 @@ function docker_remove_images() { fi } -function docker_image_dependencies() { +function docker-image-dependencies() { about 'attempt to create a Graphiz image of the supplied image ID dependencies' group 'docker' if hash dot 2>/dev/null; then @@ -58,8 +58,8 @@ function docker_image_dependencies() { fi } -function docker_runtime_environment() { +function docker-runtime-environment() { about 'attempt to list the environmental variables of the supplied image ID' group 'docker' docker run "$@" env -} \ No newline at end of file +}