Docker publishes its own apt repository to ensure you get the latest version rather than Ubuntu’s older packaged version.
Step 1 — Remove any conflicting packages:
sudo apt remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runcUbuntu’s default repos ship older, unofficial Docker packages — this clears them out first.
Step 2 — Add Docker’s apt repository:
# Install prerequisites
sudo apt update
sudo apt install ca-certificates curl
# Add Docker's official GPG key (verifies package authenticity)
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt updateStep 3 — Install Docker packages:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginThe five packages installed:
| Package | Role |
|---|---|
docker-ce | The Docker engine |
docker-ce-cli | The docker CLI |
containerd.io | The low-level container runtime |
docker-buildx-plugin | Extended build capabilities |
docker-compose-plugin | docker compose support |