jeffrey4l
8/19/2016 - 7:10 AM

dockers

#!/bin/bash

ME=$(basename $0)

function ask {
    read -p "Are you sure? [Y/n]" -n 1 -r 
    if [[ -z $REPLY ]] || [[ $REPLY =~ ^[Yy]$ ]]; then
        echo "You sure."
    else
        exit 2
    fi
}

function rm_image {
    if [[ -z "$1" ]]; then
        echo "Patten is required"
        usage
        exit 3
    fi
    images=$(docker images | egrep -i "$1" | awk '{ 
    if ($1 == "<none>" || $2 == "<none>") 
        print $3 
    else 
        print $1":"$2}')
    if [[ -n $images ]]; then
        echo "Deleting ${images}"
        ask
        docker rmi -f $images
    else
        echo "No found any images contains: $1"
        exit 1
    fi
}

function rm_container {
    if [[ -z "$1" ]]; then
        echo "Patten is required"
        usage
        exit 3
    fi
    containers=$(docker ps -a | egrep -i "$1" | awk '{ print $NF }')
    if [[ -n ${containers} ]]; then
        echo "deleting ${containers}"
        ask
        docker rm -f ${containers}
    else
        echo "Not found any container contains: $1"
        exit 1
    fi
}

function usage {
cat << EOF
Usage:
    $ME [rmi|rm] <pattern>
EOF
}

case $1 in
    rmi)
        rm_image $2
        ;;
    rm)
        rm_container $2
        ;;
    *)
        usage
esac