Last active
April 30, 2025 00:47
-
-
Save Wachhund/1cf7ba6070110ed6777f0225272e6333 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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