#!/bin/sh
COLOR="echo -e \\E[1;32m"
COLOR1="echo -e \\E[1;31m"
END="\\E[0m"
#ubuntu依赖包
ubuntu_page="
wget
apt-transport-https
ca-certificates
curl
software-properties-common
gnupg2
"
#centos依赖包
centos_page="
wget
yum-utils
device-mapper-persistent-data
lvm2
"
#centos7安装
install_centos7() {
   . /etc/init.d/functions $> /dev/null
   ${COLOR}"开始安装 Docker....."${END}
   #安装依赖包
   for PAGE in ${centos_page};do
       rpm -q $PAGE &> /dev/null || yum -y -q install $PAGE
   done
   #添加源信息
   wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
   sudo sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
   #更新安装docker-ce
   yum makecache fast &> /dev/null
   yum -y install docker-ce-19.03.9-3.el7.x86_64 containerd.io-1.3.7-3.1.el7.x86_64 docker-ce-cli-19.03.9-3.el7.x86_64
   #配置镜像加速器
   mkdir -p /etc/docker
   cat > /etc/docker/daemon.json <<EOF
{
     "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
EOF
   #重载配置文件
   systemctl daemon-reload
   #启动服务
   ${COLOR}"正在启动 Docker....."${END}
   sleep 2
   systemctl start docker && action "docker启动成功!" || action "docker启动失败,请检查配置文件!" false
}
#ubuntu安装
install_ubuntu() {
    ${COLOR}"开始安装 Docker....."${END}
    #更新源及安装依赖包
    apt-get update &> /dev/null
    for PAGE in ${ubuntu_page};do
        dpkg -s $PAGE &> /dev/null || apt -y install $PAGE &> /dev/null
    done
    #安装GPG证书
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    #写入软件源信息
    echo 'deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable' >> /etc/apt/sources.list
    #更新源信息
    apt -y update &> /dev/null
    #配置镜像加速器
    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json <<EOF
{
     "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
EOF
    #安装docker-ce
    ${COLOR}"正在安装Docker,请稍等...."${END}
    apt-get -y install docker-ce &> /dev/null && ${COLOR}"docker启动成功!"${END} || ${COLOR1}"docker启动失败,请检查配置文件!"${END}
}
#系统类型
ostype1=`awk -F'"' '/^VERSION_ID/{print $2}' /etc/os-release` 
ostype2=`awk -F'"' '/^NAME/{print $2}' /etc/os-release`
if [[ $ostype2 == "CentOS Linux" ]];then
    rpm -q docker-ce &> /dev/null && ${COLOR}"Docker已安装"$END || install_centos7        
elif [[ $ostype2 == "Ubuntu" ]];then
    dpkg -s docker-ce &> /dev/null && ${COLOR}"Docker已安装"$END || install_ubuntu
fi