How do I install docker and docker-compose on Amazon Linux 2 running on the EC2 or Lightsail cloud instance?
Before you read this article, consider using AWS Fargate.
- First step is to access the operating system with SSH. This step depends on how your machine is configured. I'll show two options to get access:
SSH with a private key
ssh -i /path/to/the/key.pem ec2-user@ec2-ip-address-dns-name-here
OR
ssh ec2-user@ec2-ip-address-dns-name-here
-
Apply pending updates using the yum command:
sudo yum update
-
Search for Docker package:
sudo yum search docker
-
Install docker with the command below:
sudo yum install docker
-
Add group membership for the default "ec2-user" so you can run all docker commands.
sudo usermod -a -G docker ec2-user id ec2-user
-
Enable docker service at boot time:
sudo systemctl enable docker.service
-
Start the Docker service:
sudo systemctl start docker.service
-
Check docker service status, run:
sudo systemctl status docker.service
The expected return would be something like this
● docker. Service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-09-08 05:03:52 EDT; 18s ago
Docs: https://docs.docker.com
Process: 3295 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited, status=0/SUCCESS)
Process: 3289 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCESS)
Main PID: 3312 (dockerd)
Tasks: 9
Memory: 39.9M
CGroup: /system.slice/docker.service
└─3312 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/c...
Sep 08 05:03:51 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:51 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:51 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:51 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:52 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:52 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:52 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:52 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Sep 08 05:03:52 amazon.example.local systemd[1]: Started Docker Applicatio...
Sep 08 05:03:52 amazon.example.local dockerd[3312]: time=2021-09-08T05:03...
Hint: Some lines were ellipsized, use -l to show in full.
- Check the Docker version:
docker version
The return would be something like this:
Client:
Version: 20.10.13
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 31 19:20:32 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server:
Engine:
Version: 20.10.13
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 906f57f
Built: Thu Mar 31 19:21:13 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.13
GitCommit: 9cc61520f4cd876b86e77edfeb88fbcd536d1f9d
runc:
Version: 1.0.3
GitCommit: f46b6ba2c9314cfc8caae24a32ec5fe9ef1059fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Need docker-compose too?
You have two alternatives to install. See below:
Install using pip (recommended)
sudo pip3 install docker-compose
ORManually install
wget https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)
sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose
sudo chmod -v +x /usr/local/bin/docker-compose
To verify that the installation was successful, can you use the command:
docker-compose version
Should you see something like:
docker-compose version 1.29.2, build unknown
docker-py version: 5.0.3
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
Bonus: install ctop
ctop provides a concise and condensed overview of real-time metrics for multiple containers.
sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctop
That tip was given by @marcelomichels; thanks!
Top comments (0)