#!/usr/bin/env bash set -euo pipefail echo "==> Removing conflicting Docker/container packages..." sudo apt remove -y \ docker.io \ docker-compose \ docker-compose-v2 \ docker-doc \ docker-buildx \ podman-docker \ containerd \ runc echo "==> Updating package lists..." sudo apt update echo "==> Installing prerequisites..." sudo apt install -y ca-certificates curl echo "==> Installing Docker's official GPG key..." 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 echo "==> Adding Docker's official repository..." sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null < Updating package lists with Docker repository..." sudo apt update echo "==> Installing Docker Engine and Compose..." sudo apt install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin echo "==> Enabling and starting Docker..." sudo systemctl enable --now docker echo "==> Testing Docker installation..." sudo docker run --rm hello-world echo echo "========================================" echo " Docker installation completed!" echo "========================================" docker --version docker compose version