First Commit
This commit is contained in:
78
install-docker.sh
Normal file
78
install-docker.sh
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "🧠 Detecting OS..."
|
||||
|
||||
# Detect OS
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
OS=$ID
|
||||
VERSION_ID=$VERSION_ID
|
||||
else
|
||||
echo "❌ Cannot determine OS. /etc/os-release not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📦 Installing Docker for: $OS $VERSION_ID"
|
||||
|
||||
# Install Docker based on detected OS
|
||||
case "$OS" in
|
||||
ubuntu|debian)
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ca-certificates curl gnupg lsb-release
|
||||
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/$OS/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$OS \
|
||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
;;
|
||||
|
||||
centos|rhel)
|
||||
sudo yum install -y yum-utils
|
||||
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
||||
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||||
;;
|
||||
|
||||
fedora)
|
||||
sudo dnf -y install dnf-plugins-core
|
||||
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
|
||||
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||||
;;
|
||||
|
||||
alpine)
|
||||
sudo apk update
|
||||
sudo apk add docker docker-cli docker-compose
|
||||
;;
|
||||
|
||||
arch)
|
||||
sudo pacman -Sy --noconfirm docker docker-compose
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "❌ Unsupported OS: $OS"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "✅ Docker installed successfully."
|
||||
|
||||
# Start and enable Docker
|
||||
echo "🚀 Starting Docker..."
|
||||
sudo systemctl enable docker
|
||||
sudo systemctl start docker
|
||||
|
||||
# Add current user to docker group
|
||||
if ! groups $USER | grep -q docker; then
|
||||
echo "👤 Adding $USER to docker group (you may need to log out and in again)..."
|
||||
sudo usermod -aG docker $USER
|
||||
fi
|
||||
|
||||
echo "✅ Done! You can now run Docker as your user."
|
||||
✓
|
||||
Reference in New Issue
Block a user