Skip to content

Instantly share code, notes, and snippets.

@Wachhund
Last active April 30, 2025 00:47
Show Gist options
  • Save Wachhund/1cf7ba6070110ed6777f0225272e6333 to your computer and use it in GitHub Desktop.
Save Wachhund/1cf7ba6070110ed6777f0225272e6333 to your computer and use it in GitHub Desktop.
#!/bin/bash
echo "🔍 Überprüfe Docker-Setup..."
# 1. Prüfen ob Docker installiert ist
if ! command -v docker &> /dev/null; then
echo "❌ Docker ist nicht installiert. Bitte installiere Docker zuerst."
exit 1
fi
echo "✅ Docker-Befehl gefunden: $(which docker)"
# 2. Erkennung ob klassische oder Snap-Installation
if snap list docker &>/dev/null; then
DOCKER_TYPE="snap"
echo "📦 Docker wurde über Snap installiert."
else
DOCKER_TYPE="classic"
echo "🐳 Docker wurde klassisch (Paketmanager) installiert."
fi
# 3. Docker-Daemon prüfen (unterschiedlich je nach Typ)
if [ "$DOCKER_TYPE" = "classic" ]; then
if ! sudo systemctl is-active --quiet docker; then
echo "⚠️ Docker-Daemon (classic) läuft nicht. Starte ihn..."
sudo systemctl start docker || { echo "❌ Fehler: Docker-Daemon konnte nicht gestartet werden."; exit 1; }
fi
echo "✅ Docker-Daemon (classic) läuft."
else
if ! sudo systemctl is-active --quiet snap.docker.dockerd; then
echo "⚠️ Docker (Snap) läuft nicht. Starte ihn..."
sudo snap start docker || { echo "❌ Fehler: Snap-Docker konnte nicht gestartet werden."; exit 1; }
fi
echo "✅ Docker-Daemon (Snap) läuft."
fi
# 4. Prüfen ob Gruppe 'docker' existiert
if ! getent group docker > /dev/null; then
echo "⚠️ Gruppe 'docker' existiert nicht. Erstelle sie..."
sudo groupadd docker
echo "✅ Gruppe 'docker' wurde erstellt."
fi
# 5. Benutzer zur docker-Gruppe hinzufügen
if groups $USER | grep -q '\bdocker\b'; then
echo "✅ Benutzer '$USER' ist bereits in der 'docker'-Gruppe."
else
echo "⚠️ Benutzer '$USER' ist nicht in der 'docker'-Gruppe."
read -p "➡️ Möchtest du dich zur 'docker'-Gruppe hinzufügen? (j/n): " addgroup
if [[ "$addgroup" =~ ^[Jj]$ ]]; then
sudo usermod -aG docker $USER
echo "✅ Benutzer zur Gruppe 'docker' hinzugefügt. Bitte ab- und wieder anmelden oder 'newgrp docker' ausführen."
fi
fi
# 6. Socket-Berechtigungen prüfen
SOCKET_INFO=$(ls -l /var/run/docker.sock 2>/dev/null || echo "missing")
if [[ "$SOCKET_INFO" == "missing" ]]; then
echo "❌ Docker-Socket existiert nicht. Docker-Dienst läuft evtl. nicht korrekt."
else
echo "📄 Socket-Berechtigungen: $SOCKET_INFO"
if echo "$SOCKET_INFO" | grep -q '\bdocker\b'; then
echo "✅ Socket gehört korrekt der Gruppe 'docker'."
else
echo "⚠️ Socket gehört nicht der Gruppe 'docker'."
if [ "$DOCKER_TYPE" = "snap" ]; then
echo "💡 Hinweis: Bei Snap-Docker wird der Socket beim Neustart evtl. zurückgesetzt."
echo "👉 Lösung: Systemd-Fix mit 'fix-docker-socket-perms.service' einrichten."
else
echo "➡️ Berechtigungen korrigieren mit: sudo chown root:docker /var/run/docker.sock"
fi
fi
fi
# 7. Test: Zugriff ohne sudo
echo "🧪 Teste 'docker ps' ohne sudo..."
if docker ps &> /dev/null; then
echo "✅ Docker funktioniert ohne sudo."
else
echo "❌ Zugriff verweigert. Wahrscheinlich wegen Socket-Rechten oder fehlender Gruppenmitgliedschaft."
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment