darkmist icon

docker_functions.sh

darkmist | PRO | 12/31/16 05:39:04 PM UTC | 0 ⭐ | 194 👁️ | Never ⏰ | []
Bash |

3.24 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/env bash
 
DOCKER_APP="docker"
DOCKER_MACHINE_APP="docker-machine"
CUR_DATE=`date`
DEBUG_MSG_PREFIX="[${CUR_DATE}][INFO]"
DOCKER_SCRIPTS_DIR=`cd ${HOME}/.docker-scripts; pwd`
 
function abort()
{
    kill -INT $$
}
 
function usage()
{
    echo "USAGE: $1 $2"
}
 
function check_parameter_docker_machine()
{
    if [ -z "$1" ]; then
        return 1
    fi
 
    DOCKER_MACHINE_NAME="${1}"
 
    return 0
}
 
function check_parameter_docker_container()
{
    if [ -z "$1" ]; then
        return 1
    fi
 
    DOCKER_CONTAINER_NAME="${1}"
 
    return 0
}
 
function check_parameter_docker_image()
{
    if [ -z "$1" ]; then
        return 1
    fi
 
    DOCKER_IMAGE_NAME="${1}"
 
    return 0
}
 
function docker_container_login()
{
    check_parameter_docker_container ${1}
 
    if [ $? -eq 1 ]; then
        usage ${DOCKER_APP} "exec -it <container id/name> bash"
        abort
    fi
 
    ${DOCKER_APP} exec -it ${DOCKER_CONTAINER_NAME} bash
}
 
function docker_container_clean()
{
    echo "${DEBUG_MSG_PREFIX} removing all containers"
    ${DOCKER_APP} rm -f $(${DOCKER_APP} ps -aq)
    echo "${DEBUG_MSG_PREFIX} all containers REMOVED"
}
 
function docker_container_run()
{
    check_parameter_docker_container ${1}
 
    if [ $? -eq 1 ]; then
        usage ${DOCKER_APP} "<container id/name> <image id/name>"
        abort
    fi
 
    check_parameter_docker_image ${2}
 
    if [ $? -eq 1 ]; then
        usage ${DOCKER_APP} "<container id/name> <image id/name>"
        abort
    fi
 
    echo "${DEBUG_MSG_PREFIX} starting a container from ${DOCKER_IMAGE_NAME}"
    ${DOCKER_APP} run --name ${DOCKER_CONTAINER_NAME} -P -d ${DOCKER_IMAGE_NAME}
    echo "${DEBUG_MSG_PREFIX} ${DOCKER_CONTAINER_NAME} started"
}
 
function docker_image_clean()
{
    echo "${DEBUG_MSG_PREFIX} removing all images"
    ${DOCKER_APP} rmi -f "$(${DOCKER_APP} images -aq)"
    echo "${DEBUG_MSG_PREFIX} all images REMOVED"
}
 
function docker_machine_env_set()
{
    check_parameter_docker_machine ${1}
 
    if [ $? -eq 1 ]; then
        usage ${DOCKER_MACHINE_APP} "<machine name>"
        abort
    fi
 
    eval "$(${DOCKER_MACHINE_APP} env "${DOCKER_MACHINE_NAME:-local}")"
    echo "${DEBUG_MSG_PREFIX} environment variables set"
}
 
function docker_machine_env_unset()
{
    eval "$(${DOCKER_MACHINE_APP} env --unset)"
    echo "${DEBUG_MSG_PREFIX} environment variables removed"
}
 
function docker_machine_start()
{
    check_parameter_docker_machine ${1}
 
    if [ $? -eq 1 ]; then
        usage ${DOCKER_MACHINE_APP} "<machine name>"
        abort
    fi
 
    echo "${DEBUG_MSG_PREFIX} starting ${1} ..."
    ${DOCKER_MACHINE_APP} start ${DOCKER_MACHINE_NAME} &>/dev/null
    echo "${DEBUG_MSG_PREFIX} ${DOCKER_MACHINE_NAME} started"
    docker_machine_env_set ${DOCKER_MACHINE_NAME}
}
 
function docker_machine_stop()
{
    check_parameter_docker_machine ${1}
 
    if [ $? -eq 1 ]; then
        usage ${DOCKER_MACHINE_APP} "<machine name>"
        abort
    fi
 
    echo "${DEBUG_MSG_PREFIX} stopping ${DOCKER_MACHINE_NAME} ..."
    ${DOCKER_MACHINE_APP} stop ${DOCKER_MACHINE_NAME} &>/dev/null
    echo "${DEBUG_MSG_PREFIX} ${DOCKER_MACHINE_NAME} stopped"
    docker_machine_env_unset
}

Comments