Skip to content

Install Docker on Ubuntu

This chapter covers how to install and configure Docker Engine on Ubuntu.

System Requirements

Docker Engine supports the following Ubuntu versions (64-bit):

  • Ubuntu 24.04 (Noble)
  • Ubuntu 22.04 (Jammy)
  • Ubuntu 20.04 (Focal)

Hardware requirements: 64-bit processor, kernel 3.10+, at least 2GB RAM (4GB+ recommended).

Uninstall Old Versions

bash
sudo apt-get remove docker docker-engine docker.io containerd runc

1. Update and Install Dependencies

bash
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

2. Add Docker's Official GPG Key

bash
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3. Add Docker APT Repository

bash
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Install Docker Engine

bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. Verify Installation

bash
sudo docker run hello-world

Method 2: Convenience Script

bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

⚠️ The convenience script is not recommended for production environments.

Post-Installation Setup

Run Docker Without sudo

bash
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

Enable Docker on Boot

bash
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Configure Docker Daemon

bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker

Common Issues

Permission Denied

bash
sudo chmod 666 /var/run/docker.sock
# Or verify user is in docker group
groups $USER

Service Won't Start

bash
sudo systemctl status docker
sudo journalctl -xu docker.service

Uninstall Docker

bash
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Further Reading

Content is for learning and research only.