Last active
September 17, 2022 07:45
-
-
Save kungfu321/15d1be3e6ae8160dec32b68ab63a96ac to your computer and use it in GitHub Desktop.
sudo apt update && wget https://gist.github.com/kungfu321/15d1be3e6ae8160dec32b68ab63a96ac/raw/cee1e4933191b672d12bbf16ef848cec2dfbb312/install_docker.sh && chmod +x install_docker.sh && bash install_docker.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| if [ ! -z `sudo which apt | grep "/apt"` ]; then | |
| sudo apt -y update | |
| sudo apt -y install git wget | |
| elif [ -z `sudo which yum | grep "/yum"` ]; then | |
| yum update | |
| yum install -y wget git | |
| fi | |
| is_ubuntu=`awk -F '=' '/PRETTY_NAME/ { print $2 }' /etc/os-release | egrep Ubuntu -i` | |
| is_centos=`awk -F '=' '/PRETTY_NAME/ { print $2 }' /etc/os-release | egrep CentOS -i` | |
| if [ ! -z "$is_ubuntu" ]; then | |
| is_docker_exist=`dpkg -l | grep docker -i` | |
| elif [ ! -z "$is_centos" ]; then | |
| is_docker_exist=`rpm -qa | grep docker` | |
| else | |
| echo "Error: Current Linux release version is not supported, please use either centos or ubuntu. " | |
| exit | |
| fi | |
| if [ ! -z "$is_docker_exist" ]; then | |
| echo "Warning: docker already exists. " | |
| fi | |
| function ubuntu_install() | |
| { | |
| #Install docker | |
| sudo apt-get -y update | |
| sudo apt-get remove docker docker-engine docker.io containerd runc | |
| sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common git vim | |
| curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
| echo \ | |
| "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ | |
| $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
| sudo apt-get -y update | |
| sudo apt-get install -y docker-ce docker-ce-cli containerd.io | |
| sudo systemctl enable docker.service | |
| sudo systemctl start docker | |
| # Install docker-compose | |
| COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oE "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1` | |
| sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose" | |
| sudo chmod +x /usr/local/bin/docker-compose | |
| sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose" | |
| is_docker_success=`sudo docker run hello-world | grep -i "Hello from Docker"` | |
| if [ -z "$is_docker_success" ]; then | |
| echo "Error: Docker installation Failed." | |
| exit | |
| fi | |
| echo "Docker has been installed successfully." | |
| } | |
| function centos_install() | |
| { | |
| #Install docker | |
| sudo yum install -y yum-utils device-mapper-persistent-data lvm2 git vim | |
| sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo | |
| sudo yum -y install docker-ce docker-ce-cli containerd.io | |
| sudo systemctl enable docker.service | |
| sudo systemctl start docker | |
| is_docker_success=`sudo docker run hello-world | grep -i "Hello from Docker"` | |
| if [ -z "$is_docker_success" ]; then | |
| echo "Error: Docker installation Failed." | |
| exit | |
| fi | |
| echo "Docker has been installed successfully." | |
| } | |
| function docker_compose_install() | |
| { | |
| # Install docker-compose | |
| COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oE "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1` | |
| sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose" | |
| sudo chmod +x /usr/local/bin/docker-compose | |
| sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose" | |
| } | |
| if [ ! -z "$is_ubuntu" ]; then | |
| ubuntu_install | |
| elif [ ! -z "$is_centos" ]; then | |
| centos_install | |
| fi | |
| docker_compose_install | |
| docker-compose --version | |
| echo "Docker-compose has been installed successfully." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment