#!/bin/bash # install_docker_wsl.sh # Script to install Docker Engine on WSL2 Ubuntu (24.04 Noble) set -e echo "=== Starting Docker Engine Installation on WSL2 Ubuntu ===" # 1. Update package index echo "Updating package index..." sudo apt-get update -y # 2. Install prerequisites echo "Installing prerequisites..." sudo apt-get install -y ca-certificates curl gnupg # 3. Add Docker GPG Key echo "Adding 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 # 4. Add Docker repository to Apt sources echo "Adding Docker repository to Apt sources..." echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.download.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Fix the domain to official docker sudo sed -i 's/download.download.com/download.docker.com/g' /etc/apt/sources.list.d/docker.list # 5. Update package index again echo "Updating package index with Docker repository..." sudo apt-get update -y # 6. Install Docker packages echo "Installing Docker Engine, CLI, Containerd, and Compose..." sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 7. Start and enable Docker service (via systemd) echo "Starting and enabling Docker service..." sudo systemctl enable docker sudo systemctl start docker # 8. Verification echo "Verifying installation..." docker --version docker compose version # 9. Test run echo "Running hello-world container..." sudo docker run --rm hello-world echo "=== Docker Engine Installation Completed Successfully ==="