56 lines
1.8 KiB
Bash
56 lines
1.8 KiB
Bash
#!/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 ==="
|