Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Amazon Linux 2 - install docker & docker-compose using 'sudo amazon-linux-extras' command

UPDATE (March 2020, thanks @ic): I don't know the exact AMI version but yum install docker now works on the latest Amazon Linux 2. The instructions below may still be relevant depending on the vintage AMI you are using.

Amazon changed the install in Linux 2. One no-longer using 'yum' See: https://aws.amazon.com/amazon-linux-2/release-notes/

Docker CE Install

sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user

Make docker auto-start

sudo chkconfig docker on

Because you always need it....

sudo yum install -y git

Reboot to verify it all loads fine on its own.

sudo reboot

docker-compose install

Copy the appropriate docker-compose binary from GitHub:

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

NOTE: to get the latest version (thanks @spodnet): sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Fix permissions after download:

sudo chmod +x /usr/local/bin/docker-compose

Verify success:

docker-compose version

@ppshein
Copy link

ppshein commented Oct 22, 2021

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

that's sweet.

@Chinweoke18
Copy link

Chinweoke18 commented Nov 2, 2021

@ozbillwang thanks a lot, solved it for me

@hscale
Copy link

hscale commented Nov 8, 2021

Should check PATH for run Docker-composer:

[root@ip-172-30-xx-xx bin]# PATH=/usr/local/bin:$PATH
[root@ip-172-30-xx-xx bin]# echo $PATH
/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

@tranvanthuc
Copy link

tranvanthuc commented Jan 22, 2022

Thank you so much. It's worked!

@timogoosen
Copy link

timogoosen commented Jan 28, 2022

The docker-compose part you can skip and just do:

sudo pip3 install docker-compose

You can do this right after installing docker, then do a reboot, then docker-compose should work fine.
Thanks for sharing this gist.
Was very helpful!

@eit
Copy link

eit commented Feb 17, 2022

use pip3 also works. thanks

@4RSIM3R
Copy link

4RSIM3R commented Feb 21, 2022

sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/bin/docker-compose && chmod +x /usr/bin/docker-compose && docker-compose --version

@Ucinorn
Copy link

Ucinorn commented Mar 1, 2022

For those who get all the way down here: the following userdata script works great for me on a basic Amazon Linux ARM EC2 instance:

#!/bin/bash
yum update
yum -y install docker
service docker start
usermod -a -G docker ec2-user
chkconfig docker on
pip3 install docker-compose
reboot

Note userdata always runs as root so no need to use sudo

After its finished initialising run this to see the output of the userscript to ensure it all ran as expected and for debugging:

sudo cat /var/log/cloud-init-output.log

@victorsferreira
Copy link

victorsferreira commented May 21, 2022

Guys in case you followed Docker instructions first you need to delete the repo before continuing:
sudo rm /etc/yum.repos.d/docker-ce.repo

@olen2006
Copy link

olen2006 commented Jul 6, 2022

delete the repo before continuing

provide link ? Never had to do it.

@olen2006
Copy link

olen2006 commented Jul 6, 2022

The docker-compose part you can skip and just do:

sudo pip3 install docker-compose

You can do this right after installing docker, then do a reboot, then docker-compose should work fine. Thanks for sharing this gist. Was very helpful!

depending on the version of distribution most likely you'll install an old version of docker-compose (1.29 vs 2.6.1)

@pkazi
Copy link

pkazi commented Jul 26, 2022

For me, uname -s returned Linux , but the download URL has linux, so converted to lowercase and updated curl to -

sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m) -o /usr/bin/docker-compose && sudo chmod 755 /usr/bin/docker-compose && docker-compose --version

@ortizfelipe
Copy link

ortizfelipe commented Aug 16, 2022

Thanks

@mmansour
Copy link

mmansour commented Aug 30, 2022

Works great. Thank you!

@Ahmed-Hodhod
Copy link

Ahmed-Hodhod commented Sep 3, 2022

Thanks, it worked also on the AWS cloud shell...

@amitkumar-2
Copy link

amitkumar-2 commented Sep 25, 2022

thank you bro.....

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