凪咲
2024-07-19 85c1675e7cf4ee036a1fdeded4da8426f1775d8a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 
# Set color
RED="\033[31;1m"
GREEN="\033[32;1m"
YELLOW="\033[33;1m"
BLUE="\033[34;1m"
CYAN="\033[36;1m"
PLAIN="\033[0m"
 
# Info messages
DONE="${GREEN}[DONE]${PLAIN}"
ERROR="${RED}[ERROR]${PLAIN}"
WARNING="${YELLOW}[WARNING]${PLAIN}"
 
# Font Format
BOLD="\033[1m"
UNDERLINE="\033[4m"
 
# Current folder
CUR_DIR=`pwd`
SUDO_CMD="sudo"
 
# OS
OSID=$(grep ^ID= /etc/os-release | cut -d= -f2)
OSVER=$(lsb_release -cs)
OSNUM=$(grep -oE  "[0-9.]+" /etc/issue)
DOCKERINFO=$(${SUDO_CMD} docker info | wc -l)
DOCKERINFOLEN=`expr ${DOCKERINFO} + 0`
 
 
if [ $DOCKERINFOLEN -gt 30 ]; then
    echo -e "  ${YELLOW}Docker has installed.${PLAIN}"
else
    lowercase_osid=$(echo ${OSID} | tr '[A-Z]' '[a-z]')
    echo -e "  ${YELLOW}Start install docker for ${lowercase_osid} ${PLAIN}"
    DOCKER_INSTALL_CMD="curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun"
    DOCKER_INSTALL_RUN_CMD=""
 
    case "$lowercase_osid" in
        ubuntu)
            DOCKER_INSTALL_CMD="curl -fsSL https://test.docker.com -o test-docker.sh"
            DOCKER_INSTALL_RUN_CMD="${SUDO_CMD} sh test-docker.sh"
            ;;
        centos)
            DOCKER_INSTALL_CMD="curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun"
            ;;
        debian)
            DOCKER_INSTALL_CMD="curl -fsSL https://get.docker.com -o get-docker.sh"
            DOCKER_INSTALL_RUN_CMD="${SUDO_CMD} sh get-docker.sh"
            ;;
        \"alios\")
            DOCKER_INSTALL_CMD="curl -fsSL https://get.docker.com -o get-docker.sh"
            DOCKER_INSTALL_RUN_CMD="${SUDO_CMD} sh get-docker.sh"
            ;;
        \"alinux\")
            DOCKER_INSTALL_CMD="${SUDO_CMD} yum -y install dnf"
            DOCKER_INSTALL_RUN_CMD="${SUDO_CMD} dnf -y install docker"
            ;;
        *)
            echo -e "  ${RED}$lowercase_osid is not supported.${PLAIN}"
            ;;
    esac
 
    echo -e "  Get docker installer: ${GREEN}${DOCKER_INSTALL_CMD}${PLAIN}"
    echo -e "  Get docker run: ${GREEN}${DOCKER_INSTALL_RUN_CMD}${PLAIN}"
 
    $DOCKER_INSTALL_CMD
    if [ ! -z "$DOCKER_INSTALL_RUN_CMD" ]; then
        $DOCKER_INSTALL_RUN_CMD
    fi
    $SUDO_CMD systemctl start docker
 
    DOCKERINFO=$(${SUDO_CMD} docker info | wc -l)
    DOCKERINFOLEN=`expr ${DOCKERINFO} + 0`
    if [ $DOCKERINFOLEN -gt 30 ]; then
        echo -e "  ${GREEN}Docker install success, start docker server.${PLAIN}"
        $SUDO_CMD systemctl start docker
    else
        echo -e "  ${RED}Docker install failed!${PLAIN}"
        exit 1
    fi
fi