Docker Functions in Bash
#!/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
}