Last active
October 9, 2024 19:47
-
-
Save wdullaer/f1af16bd7e970389bad3 to your computer and use it in GitHub Desktop.
Install Latest Docker and Docker-compose on Ubuntu
This file contains 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
# Ask for the user password | |
# Script only works if sudo caches the password for a few minutes | |
sudo true | |
# Install kernel extra's to enable docker aufs support | |
# sudo apt-get -y install linux-image-extra-$(uname -r) | |
# Add Docker PPA and install latest version | |
# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 | |
# sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" | |
# sudo apt-get update | |
# sudo apt-get install lxc-docker -y | |
# Alternatively you can use the official docker install script | |
wget -qO- https://get.docker.com/ | sh | |
# 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" | |
# Install docker-cleanup command | |
cd /tmp | |
git clone https://gist.github.com/76b450a0c986e576e98b.git | |
cd 76b450a0c986e576e98b | |
sudo mv docker-cleanup /usr/local/bin/docker-cleanup | |
sudo chmod +x /usr/local/bin/docker-cleanup |
Oh my dayum! This script is delicious :)
Thank you sir.
A little warn here : please consider using -E (extended regex) instead of -P (Perl regex) in your grep expression. => Some grep may not support -P : busybox for example does not support this flag.
Nice script, tkx.
However, sometimes the versions of docker-compose are not ordered and so the version downloaded is not the last one.
This fixes it:
COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1`
I haven't updated this in a long time. I'm happy to see it still works.
Thanks for the feedback, I'll add your fix in.
Very useful script, thanks for the job, hope you have a good day!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi there, thank you for taking the pain away from installing the latest docker version.
One little improvement though:
The script is dependent on git being installed.
Maybe add something like:
hash git 2>/dev/null || { echo >&2 "I require git but it's not installed. Aborting..."; exit 1;}