Docker & Docker Compose: Complete Installation Guide

A step-by-step guide to installing Docker Engine and Docker Compose on Linux systems (Ubuntu/Debian).
Prerequisites
Linux system (Ubuntu/Debian recommended)
Terminal access with
sudo
privilegesMinimum 2GB RAM (4GB recommended)
20GB free disk space
1. Install Docker Engine
For Ubuntu/Debian:
# Remove old versions
sudo apt remove docker docker-engine docker.io containerd runc
# Update package index
sudo apt update
# Install dependencies
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
# Add Docker's official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Set up the repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Verify Docker Installation:
sudo docker run hello-world
2. Install Docker Compose (Standalone)
For systems using the standalone version (not included in Docker Engine):
# Download current stable release
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Apply executable permissions
sudo chmod +x /usr/local/bin/docker-compose
# Verify installation
docker-compose --version
3. Post-Installation Setup
Manage Docker as Non-Root User:
sudo usermod -aG docker $USER
newgrp docker # Refresh group membership
Enable Docker Service:
sudo systemctl enable docker
sudo systemctl start docker
4. Basic Docker Commands
docker ps
List running containers
docker ps -a
List all containers
docker images
List images
docker pull <image>
Download an image
docker run <image>
Run a container
docker stop <container>
Stop a container
docker rm <container>
Remove a container
docker-compose up -d
Start compose stack
docker-compose down
Stop compose stack
Troubleshooting
Common Issues:
Permission Denied Errors:
sudo chmod 666 /var/run/docker.sock # Temporary fix
# Better solution: Ensure user is in 'docker' group
Port Conflicts:
sudo netstat -tulnp | grep <port>
Cleanup Resources:
# Remove unused containers/networks/images
docker system prune
Maintenance
Update Docker:
sudo apt update && sudo apt upgrade docker-ce
Uninstall Docker:
sudo apt purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Note: For other Linux distributions, refer to the official Docker documentation.
Last updated