Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save latetedemelon/6c65213b6e5645e9b911f9d2a939f032 to your computer and use it in GitHub Desktop.
Save latetedemelon/6c65213b6e5645e9b911f9d2a939f032 to your computer and use it in GitHub Desktop.
A simple Docker and Docker Compose install script for Ubuntu
#!/bin/sh
set -o errexit
set -o nounset
IFS=$(printf '\n\t')
# Docker
#Checks for old packages and removes if required
OLD_DOCKER=("docker" "docker-engine" "docker.io" "containerd" "runc")
for PACKAGE in ${OLD_DOCKER[@]}; do
if [ -z $(dpkg-query -W -f='${Version}' $PACKAGE 2>/dev/null) ]; then
printf '%s not installed.\n' "$PACKAGE" || exit
else
sudo apt -qq remove --yes $PACKAGE 2>/dev/null
printf '%s removed.\n' "$PACKAGE" || exit
fi
done
sudo apt update
sudo apt --yes --no-install-recommends install apt-transport-https ca-certificates
wget --quiet --output-document=- https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository --yes "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release --codename --short) stable"
sudo apt update
sudo apt --yes --no-install-recommends install docker-ce docker-ce-cli containerd.io
sudo usermod --append --groups docker "$USER"
sudo systemctl enable docker
printf '\nDocker installed successfully\n\n'
printf 'Waiting for Docker to start...\n\n'
sleep 5
# Docker Compose
compose_release() {
curl --silent "https://api.github.com/repos/docker/compose/releases/latest" |
grep -Po '"tag_name": "\K.*?(?=")'
}
if ! [ -x "$(command -v docker-compose)" ]; then
sudo curl -L https://github.com/docker/compose/releases/download/$(compose_release)/docker-compose-$(uname -s)-$(uname -m) \
-o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose && sudo wget --output-document=/etc/bash_completion.d/docker-compose "https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose" && printf '\nDocker Compose installed successfully\n\n'
fi
printf '\nDocker Compose installed successfully\n\n'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment