1- Update your system
sudo apt update
sudo apt upgrade -y
2- Install required dependencies
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -y
3- Add Docker’s official GPG key and repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Add the Docker repository:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4- Install Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
Check Docker status:
sudo systemctl status docker
(Optional) Enable Docker to start on boot:
sudo systemctl enable docker
5- Allow running Docker as non-root user (optional but recommended)
sudo usermod -aG docker $USER
Then log out and log back in, or run:
newgrp docker
Test Docker:
docker run hello-world
6- Install Docker Compose
There are two methods: via the package manager or latest version via binary. I recommend the binary method for the latest version.
a) Check the latest release
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
b) Download and install
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
c) Verify installation
docker-compose --version
At this point, you have both Docker and Docker Compose installed on your Ubuntu server.