#!/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 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} " " abort fi check_parameter_docker_image ${2} if [ $? -eq 1 ]; then usage ${DOCKER_APP} " " 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} "" 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} "" 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} "" 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 }