Skip to content

Instantly share code, notes, and snippets.

Embed
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://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
#get latest docker compose released tag
docker_compose_version="$(git ls-remote https://github.com/docker/compose | grep "refs/tag" | grep -oP "[0-9]+\.[0-9]+\.[0-9]+" | tail -n1)"
# Install docker-compose
sudo sh -c "curl -L https://github.com/docker/compose/releases/download/$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 https://raw.githubusercontent.com/docker/compose/$docker_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
@luislobo

This comment has been minimized.

Copy link
Owner Author

commented May 27, 2016

Quick install:
curl -s https://gist.githubusercontent.com/luislobo/2dc3de67b7f2ddc623c239dff36962a0/raw/9f24ff62eb7ada78718f5a805b54c0295c248692/install_latest_docker_compose.sh | bash /dev/stdin

@jahands

This comment has been minimized.

Copy link

commented Jun 8, 2016

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

@deviantony

This comment has been minimized.

Copy link

commented Jun 23, 2016

Nice ! Thanks

@Laxman-SM

This comment has been minimized.

Copy link

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 https://github.com/docker/compose | grep "refs/tag" | awk '{print $2}' | tail -n1 | egrep -o "1.*")

@dsifford

This comment has been minimized.

Copy link

commented Jul 14, 2016

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

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

This comment has been minimized.

Copy link

commented Aug 17, 2016

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

@thuandt

This comment has been minimized.

Copy link

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)"
    fbin="~/.local/bin/docker-compose"
    repos_dl="https://github.com/docker/compose/releases/download"
    repos_api="https://api.github.com/repos/docker/compose/releases/latest"
    version=$(curl -sSL $repos_api | jq -r '. | .tag_name')
    /bin/rm -f "$fbin"
    curl -sSL $repos_dl/"$version"/"$fname" -o "$fbin"
    chmod +x $fbin
}
@Laxman-SM

This comment has been minimized.

Copy link

commented Aug 2, 2017

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

git ls-remote https://github.com/docker/compose | 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 ...]

@PastaGringo

This comment has been minimized.

Copy link

commented Nov 23, 2017

Thanks !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.