2025-06-20 03:05:45 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
echo "🔧 Updating system packages..."
|
|
|
|
|
sudo apt-get update -y
|
|
|
|
|
sudo apt-get upgrade -y
|
|
|
|
|
|
|
|
|
|
echo "🐳 Installing Docker..."
|
|
|
|
|
# Remove old versions
|
|
|
|
|
sudo apt-get remove -y docker docker-engine docker.io containerd runc || true
|
|
|
|
|
|
|
|
|
|
# Install dependencies
|
|
|
|
|
sudo apt-get install -y ca-certificates curl gnupg lsb-release
|
|
|
|
|
|
|
|
|
|
# Add Docker's official GPG key
|
|
|
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
|
|
|
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | \
|
|
|
|
|
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
|
|
|
|
|
|
|
|
# Add Docker repository
|
|
|
|
|
echo \
|
|
|
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
|
|
|
|
https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
|
|
|
|
|
$(lsb_release -cs) stable" | \
|
|
|
|
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
|
|
|
|
|
|
|
|
# Install Docker Engine
|
|
|
|
|
sudo apt-get update -y
|
|
|
|
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
|
|
|
|
|
|
# Enable Docker service
|
|
|
|
|
sudo systemctl enable docker
|
|
|
|
|
sudo systemctl start docker
|
|
|
|
|
|
|
|
|
|
echo "✅ Docker installed successfully."
|
|
|
|
|
|
|
|
|
|
echo "📦 Deploying Portainer..."
|
|
|
|
|
# Pull and run Portainer container
|
|
|
|
|
sudo docker volume create portainer_data
|
|
|
|
|
|
|
|
|
|
sudo docker run -d \
|
|
|
|
|
--name=portainer \
|
|
|
|
|
--restart=always \
|
|
|
|
|
-p 8000:8000 \
|
|
|
|
|
-p 9443:9443 \
|
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
|
|
|
-v portainer_data:/data \
|
|
|
|
|
portainer/portainer-ce:latest
|
|
|
|
|
|
|
|
|
|
echo "🚀 Portainer is now running at https://<your-ip>:9443"
|