Docker & Docker Compose: Complete Installation Guide

Docker Logo

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 privileges

  • Minimum 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

Command
Description

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