Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Install Latest Docker and Docker-compose on Ubuntu
# 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:// --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
# sudo sh -c "echo deb 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- | sh
#get latest docker compose released tag
docker_compose_version="$(git ls-remote | grep "refs/tag" | grep -oP "[0-9]+\.[0-9]+\.[0-9]+" | tail -n1)"
# Install docker-compose
sudo sh -c "curl -L$docker_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$docker_compose_version/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
# Install docker-cleanup command
cd /tmp
git clone
cd 76b450a0c986e576e98b
sudo mv docker-cleanup /usr/local/bin/docker-cleanup
sudo chmod +x /usr/local/bin/docker-cleanup
Copy link

luislobo commented May 27, 2016

Quick install:
curl -s | bash /dev/stdin

Copy link

jahands commented Jun 8, 2016

This looks great! I'll be using it later :) Thanks!

Copy link

deviantony commented Jun 23, 2016

Nice ! Thanks

Copy link

Laxman-SM commented Jul 1, 2016

HI luislobo,

Thanks for the script.

i made small fix for docker-compose version. above mentioned grep -oP thowring error for me. after adding below mentioned line docker-compose successfully installed on machine created through Docker-machine.

docker_compose_version="$(git ls-remote | grep "refs/tag" | awk '{print $2}' | tail -n1 | egrep -o "1.*")

Copy link

dsifford commented Jul 14, 2016

This version skips release candidates and grabs the latest stable version...

    docker_compose_version=$(git ls-remote | tail -n8 | awk '{print $2}' | grep -Po 'refs/tags/\K([\d.]{5})(?!-\w+)' | tail -n1)

Copy link

skorski commented Aug 17, 2016

Thanks! This saved me a bunch of time this afternoon.

Copy link

thuandt commented Sep 5, 2016

Install latest version of docker-compose with Github API, jq and curl

# install latest docker compose via GitHub API and curl
install-docker-compose () {
    fname="docker-compose-$(uname -s)-$(uname -m)"
    version=$(curl -sSL $repos_api | jq -r '. | .tag_name')
    /bin/rm -f "$fbin"
    curl -sSL $repos_dl/"$version"/"$fname" -o "$fbin"
    chmod +x $fbin

Copy link

Laxman-SM commented Aug 2, 2017

I saw now days this command no longer is working. giving exception with command argument.

git ls-remote | grep "refs/tag" | grep -oP "[0-9]+.[0-9]+.[0-9]+"
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]

Copy link

PastaGringo commented Nov 23, 2017

Thanks !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment