Initial commit
This commit is contained in:
121
install_docker_debian.sh
Executable file
121
install_docker_debian.sh
Executable file
@@ -0,0 +1,121 @@
|
||||
#!/bin/bash
|
||||
# Docker Installation Script for Debian 12
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "Docker Installation for Debian 12"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Please run with sudo: sudo bash install_docker_debian.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Detect OS
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
OS=$ID
|
||||
VER=$VERSION_ID
|
||||
echo "Detected OS: $PRETTY_NAME"
|
||||
else
|
||||
echo "Cannot detect OS version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Remove old versions
|
||||
echo ""
|
||||
echo "Step 1: Removing old Docker versions (if any)..."
|
||||
apt-get remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true
|
||||
|
||||
# Install prerequisites
|
||||
echo ""
|
||||
echo "Step 2: Installing prerequisites..."
|
||||
apt-get update
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release
|
||||
|
||||
# Add Docker's official GPG key
|
||||
echo ""
|
||||
echo "Step 3: Adding Docker GPG key..."
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
# Set up Docker repository
|
||||
echo ""
|
||||
echo "Step 4: Adding Docker repository..."
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
# Install Docker Engine
|
||||
echo ""
|
||||
echo "Step 5: Installing Docker Engine..."
|
||||
apt-get update
|
||||
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
# Start Docker service
|
||||
echo ""
|
||||
echo "Step 6: Starting Docker service..."
|
||||
systemctl start docker
|
||||
systemctl enable docker
|
||||
|
||||
# Add current user to docker group (if not root)
|
||||
if [ -n "$SUDO_USER" ]; then
|
||||
echo ""
|
||||
echo "Step 7: Adding user $SUDO_USER to docker group..."
|
||||
usermod -aG docker $SUDO_USER
|
||||
echo "Note: You'll need to log out and back in for group changes to take effect"
|
||||
fi
|
||||
|
||||
# Verify installation
|
||||
echo ""
|
||||
echo "Step 8: Verifying Docker installation..."
|
||||
if docker --version; then
|
||||
echo "✓ Docker installed successfully"
|
||||
else
|
||||
echo "✗ Docker installation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if docker compose version; then
|
||||
echo "✓ Docker Compose installed successfully"
|
||||
else
|
||||
echo "✗ Docker Compose installation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test Docker
|
||||
echo ""
|
||||
echo "Step 9: Testing Docker..."
|
||||
if docker run --rm hello-world > /dev/null 2>&1; then
|
||||
echo "✓ Docker is working correctly"
|
||||
else
|
||||
echo "⚠ Docker test failed - you may need to log out and back in"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Installation completed successfully!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Docker version:"
|
||||
docker --version
|
||||
echo ""
|
||||
echo "Docker Compose version:"
|
||||
docker compose version
|
||||
echo ""
|
||||
echo "IMPORTANT: If you're not root, log out and back in for group changes to take effect"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Log out and back in (or run: newgrp docker)"
|
||||
echo "2. Test Docker: docker run hello-world"
|
||||
echo "3. Set up test environment: bash test_data/setup_test_environment.sh"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user