#!/bin/bash # install_docker.sh - Script for installing Docker and Docker Compose echo "🚀 Installing Docker and Docker Compose..." # Check if script is run as root if [ "$(id -u)" -ne 0 ]; then echo "❌ This script must be run as root. Please run with sudo." exit 1 fi # Update package lists echo "📦 Updating package lists..." apt update # Install required packages echo "📦 Installing required packages..." apt install -y apt-transport-https ca-certificates curl software-properties-common # Add Docker GPG key echo "🔑 Adding Docker GPG key..." curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - # Add Docker repository echo "📁 Adding Docker repository..." add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # Update package lists again apt update # Install Docker echo "🐳 Installing Docker..." apt install -y docker-ce docker-ce-cli containerd.io # Enable and start Docker service systemctl enable docker systemctl start docker # Install Docker Compose echo "🐳 Installing Docker Compose..." curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose # Check versions echo "✅ Installation complete!" echo "Docker version:" docker --version echo "Docker Compose version:" docker-compose --version # Add current user to docker group if not root if [ -n "$SUDO_USER" ]; then echo "👤 Adding user $SUDO_USER to docker group..." usermod -aG docker $SUDO_USER echo "⚠️ Please log out and log back in for group changes to take effect." fi echo "🎉 Docker installation completed successfully!"