82 lines
1.6 KiB
Bash
82 lines
1.6 KiB
Bash
# 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
|
|
}
|
|
|