# Routines for interacting with docker # Check if docker is installed _check_docker_installed() { if ! command -v docker &> /dev/null; then echo "Docker is not installed" return 1 fi # check if docker daemon is running if ! docker info &> /dev/null; then echo "Docker daemon is not running" return 1 fi # check if user has permission to run docker if ! docker run --rm hello-world &> /dev/null; then echo "User does not have permission to run docker" return 1 fi return 0 } # Check if a container exists _is_container_exists() { if ! docker ps -a --format "{{.Names}}" | grep -q "^$1$"; then return 1 fi return 0 } # Check if a container is running _is_container_running() { if ! docker ps --format "{{.Names}}" | grep -q "^$1$"; then return 1 fi return 0 } # get contianer ID _get_container_id() { docker ps --format "{{.ID}}" --filter "name=$1" } # get container status _get_container_status() { docker ps --format "{{.Status}}" --filter "name=$1" } # start container that exists _start_container() { _is_container_exists $1 || return 1 _is_container_running $1 && return 0 docker start $1 } # stop container that exists _stop_container() { _is_container_running $1 || return 0; docker stop $1 } # remove container that exists _remove_container() { _stop_container $1 _is_container_exists $1 || return 0; docker rm $1 } # get container logs _get_container_logs() { if ! _is_container_exists $1; then echo "Container $1 does not exist" return 1 fi docker logs $1 }