Helpers to more easily work with Docker
(in /home/bsgt/stablecaps_bashrc/modules/docker_module.sh)
Function Index
01 - docker-remove-most-recent-container
02 - docker-remove-most-recent-image
03 - docker-remove-stale-assets
04 - docker-enter
05 - docker-remove-images
06 - docker-image-dependencies
07 - docker-runtime-environment
08 - docker-archive-content
>> docker-remove-most-recent-container():
about: attempt to remove the most recent container from docker ps -a
group: docker
function docker-remove-most-recent-container() {
docker ps -ql | xargs docker rm
}
>> docker-remove-most-recent-image():
about: attempt to remove the most recent image from docker images
group: docker
function docker-remove-most-recent-image() {
docker images -q | head -1 | xargs docker rmi
}
>> docker-remove-stale-assets():
about: attempt to remove exited containers and dangling images
group: docker
function docker-remove-stale-assets() {
docker ps --filter status=exited -q | xargs docker rm --volumes
docker images --filter dangling=true -q | xargs docker rmi
}
>> docker-enter():
about: enter the specified docker container using bash
group: docker
param: 1: Name of the container to enter
example:
docker-enter oracle-xe
function docker-enter() {
docker exec -it "$@" /bin/bash;
}
>> docker-remove-images():
about: attempt to remove images with supplied tags or all if no tags are supplied
group: docker
function docker-remove-images() {
if [ -z "$1" ]; then
docker rmi $(docker images -q)
else
DOCKER_IMAGES=""
for IMAGE_ID in $@; do DOCKER_IMAGES="$DOCKER_IMAGES\|$IMAGE_ID"; done
ID_ARRAY=($(docker images | grep "${DOCKER_IMAGES:2}" | awk {'print $3'}))
docker rmi $(echo ${ID_ARRAY[@]} | tr ' ' '\n' | sort -u | tr '\n' ' ')
fi
}
>> docker-image-dependencies():
about: attempt to create a Graphiz image of the supplied image ID dependencies
group: docker
function docker-image-dependencies() {
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
}
>> docker-runtime-environment():
about: attempt to list the environmental variables of the supplied image ID
group: docker
function docker-runtime-environment() {
docker run "$@" env
}
>> docker-archive-content():
about: show the content of the provided Docker image archive
group: docker
param: 1: image archive name
example:
docker-archive-content images.tar.gz
function docker-archive-content() {
if [ -n "$1" ]; then
tar -xzOf $1 manifest.json | jq '[.[] | .RepoTags] | add'
fi
}