Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save virtualex-itv/62776f0f0970dcad5aa4bc6d13054b22 to your computer and use it in GitHub Desktop.
Save virtualex-itv/62776f0f0970dcad5aa4bc6d13054b22 to your computer and use it in GitHub Desktop.
Install Docker in Ubuntu 20.04+, Install Docker-Compose on Ubuntu 20.04+
#!/bin/bash
# Copyright (c) Alex Lopez 2023
# All rights reserved
# vim: tabstop=4 shiftwidth=4
# [OPTIONAL] Uninstall old docker versions
sudo apt-get remove docker docker-engine docker.io containerd runc
# Refresh latest version
sudo apt-get update
# Install pre-req
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Add docker official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg
# x86 and amd_64 HERE WE CHANGE
echo "deb [arch=$(dpkg --print-architecture) 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
# Install docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# Give docker permissions
getent group docker > /dev/null
if [ $? -eq 1 ]; then
sudo groupadd docker
fi
sudo usermod -aG docker $USER
newgrp docker << EONG
EONG
# Check version
docker --version
# Check if installed
#sudo docker run hello-world
# If still fails, reboot OS
# Download docker compose stable
#sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #original
#LATEST_RELEASE=`wget -qO - https://github.com/docker/compose/releases/latest | grep '<title' | awk '{print $2}'` #this works but could stop if formatting is changed on github
#LATEST_RELEASE=`curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")'` #this works - same as below but without sed
LATEST_RELEASE=`curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'`
sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_RELEASE}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Apply executable to binary
sudo chmod +x /usr/local/bin/docker-compose
# Check version
docker-compose --version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment