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 runcMethod 1: Install Using APT Repository (Recommended)
1. Update and Install Dependencies
bash
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg2. 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.gpg3. 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/null4. Install Docker Engine
bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin5. Verify Installation
bash
sudo docker run hello-worldMethod 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-worldEnable Docker on Boot
bash
sudo systemctl enable docker.service
sudo systemctl enable containerd.serviceConfigure 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 dockerCommon Issues
Permission Denied
bash
sudo chmod 666 /var/run/docker.sock
# Or verify user is in docker group
groups $USERService Won't Start
bash
sudo systemctl status docker
sudo journalctl -xu docker.serviceUninstall 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