diff --git a/README.md b/README.md index 58be01b..5a3347a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,15 @@ # Dockernet Inspector -Ein Bash-Script zur Analyse und Anzeige von Details zu Docker-Netzwerken. +Ein Bash-Script zur Verwaltung und Analyse von Docker-Netzwerken. ## 📋 Beschreibung -**Dockernet Inspector** ist ein praktisches Bash-Script, das detaillierte Informationen über Docker-Netzwerke anzeigt. Es ermöglicht Administratoren und Entwicklern einen schnellen Überblick über die Konfiguration und den Status eines Docker-Netzwerks zu erhalten. +**Dockernet Inspector** ist ein praktisches Bash-Script, das Administratoren und Entwicklern die Verwaltung und Analyse von Docker-Netzwerken erleichtert. Das Script bietet zwei Hauptfunktionen: -Das Script zeigt folgende Informationen an: +1. **Alle Netzwerke auflisten** - Anzeige aller verfügbaren Docker-Netzwerke mit ihren Treibern +2. **Netzwerk-Details inspizieren** - Detaillierte Informationen zu einem spezifischen Netzwerk + +Das Script zeigt folgende Informationen beim Inspizieren an: - **Netzwerk-Driver** (bridge, overlay, host, etc.) - **Bridge-Interface-Name** auf dem Host-System - **Subnet und Gateway** des Netzwerks @@ -31,22 +34,52 @@ chmod +x dockernet-inspector.v1.sh ### Grundlegende Syntax ```bash -bash ./dockernet-inspector.v1.sh +bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONS] ``` +### Verfügbare Befehle + +| Befehl | Beschreibung | +|--------|-------------| +| `networks` | Listet alle verfügbaren Docker-Netzwerke auf | +| `inspect ` | Zeigt detaillierte Informationen zu einem Netzwerk | +| `` | Alias für `inspect ` (Rückwärtskompatibilität) | +| `help`, `-h`, `--help` | Zeigt die Hilfe an | + ### Beispiele -**Beispiel 1: Standard Bridge-Netzwerk analysieren** +**Beispiel 1: Alle Docker-Netzwerke auflisten** ```bash -bash ./dockernet-inspector.v1.sh bridge +bash ./dockernet-inspector.v1.sh networks ``` -**Beispiel 2: Benutzerdefiniertes Netzwerk analysieren** +**Beispiel 2: Standard Bridge-Netzwerk analysieren (mit inspect)** +```bash +bash ./dockernet-inspector.v1.sh inspect bridge +``` + +**Beispiel 3: Benutzerdefiniertes Netzwerk analysieren (Schnellform)** ```bash bash ./dockernet-inspector.v1.sh my-custom-network ``` -### Beispiel-Ausgabe +**Beispiel 4: Hilfe anzeigen** +```bash +bash ./dockernet-inspector.v1.sh help +``` + +### Beispiel-Ausgabe für `networks` + +``` +Verfügbare Docker Netzwerke: +============================== +ID NAME DRIVER SCOPE +abcd1234efgh5678ijkl9012 bridge bridge local +mnop4567qrst8901uvwx2345 host host local +yzab3456cdef7890ghij1234 mynet bridge local +``` + +### Beispiel-Ausgabe für `inspect` ``` Docker-Netzwerk : my-network @@ -81,8 +114,10 @@ TX bytes/packets : 654321 / 456 Das Script gibt folgende Fehlermeldungen aus: -- **Keine Netzwerk-Angabe:** `Usage: ./dockernet-inspector.v1.sh ` +- **Kein Befehl angegeben:** `Fehler: Befehl erforderlich. Verwendung: $0 networks|inspect|help` +- **Keine Netzwerk-Angabe beim Inspizieren:** `Fehler: Netzwerkname erforderlich. Verwendung: $0 inspect ` - **Netzwerk nicht gefunden:** `Fehler: Netzwerk '' nicht gefunden.` +- **Docker Netzwerke konnten nicht abgerufen werden:** `Fehler: Docker Netzwerke konnten nicht abgerufen werden.` - **Interface existiert nicht:** `WARN: Interface existiert (noch) nicht auf dem Host.` ## 🛠️ Technische Details @@ -108,9 +143,9 @@ Beiträge, Issues und Feature-Anfragen sind willkommen! ## 📅 Version -- **Version:** 1.0.0 +- **Version:** 1.1.0 - **Datum:** 17.02.2026 -- **Modifikation:** Initial Release +- **Modifikation:** Funktion zur Auflistung aller Docker-Netzwerke hinzugefügt

diff --git a/dockernet-inspector.v1.sh b/dockernet-inspector.v1.sh index d7e572c..06a3b98 100644 --- a/dockernet-inspector.v1.sh +++ b/dockernet-inspector.v1.sh @@ -1,20 +1,93 @@ #!/usr/bin/env bash # Script Name: dockernet-inspector.v1.sh -# Beschreibung: Dockernet Inspector - Zeigt Details zu einem Docker-Netzwerk an (Netzwerktyp, Bridge-Interface, Subnet/Gateway, Interface-Status & Stats) -# Verwendung: bash ./dockernet-inspector.v1.sh +# Beschreibung: Dockernet Inspector - Verwaltet und inspiziert Docker-Netzwerke +# - Alle Netzwerke auflisten +# - Details zu einem spezifischen Docker-Netzwerk anzeigen +# (Netzwerktyp, Bridge-Interface, Subnet/Gateway, Interface-Status & Stats) +# Verwendung: bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONS] +# Befehle: +# networks - Alle Docker Netzwerke auflisten +# inspect - Details zu einem Netzwerk anzeigen (Standard) +# help, -h, --help - Diese Hilfe anzeigen # Autor: Patrick Asmus # Web: https://www.cleveradmin.de # Git-Reposit.: https://git.techniverse.net/scriptos/dockernet-inspector.git -# Version: 1.0.0 +# Version: 1.1.0 # Datum: 17.02.2026 -# Modifikation: Initial +# Modifikation: Funktion zum Auflisten aller Docker Netzwerke hinzugefügt ##################################################### set -euo pipefail -NET="${1:-}" -[[ -z "$NET" ]] && { echo "Usage: $0 "; exit 1; } +# Hilfe-Funktion +show_help() { + cat < - Details zu einem Netzwerk anzeigen + $0 - Alias für 'inspect ' + $0 help - Diese Hilfe anzeigen + +BEFEHLE: + networks Listet alle verfügbaren Docker Netzwerke auf + inspect Zeigt detaillierte Informationen zu einem Netzwerk: + - Netzwerktyp (Driver) + - Bridge-Interface + - Subnetz und Gateway + - Interface-Status + - Netzwerk-Statistiken (RX/TX bytes und packets) + help Zeigt diese Hilfe an + +BEISPIELE: + $0 networks + $0 inspect mynetwork + $0 mynetwork + $0 -h + +HELP +} + +# Funktion zum Auflisten aller Docker Netzwerke +list_networks() { + echo "Verfügbare Docker Netzwerke:" + echo "==============================" + docker network ls --format "table {{.ID}}\t{{.Name}}\t{{.Driver}}\t{{.Scope}}" || { + echo "Fehler: Docker Netzwerke konnten nicht abgerufen werden." + exit 2 + } +} + +# Argument-Verarbeitung +COMMAND="${1:-}" +case "$COMMAND" in + networks) + list_networks + exit 0 + ;; + help | -h | --help) + show_help + exit 0 + ;; + inspect) + NET="${2:-}" + [[ -z "$NET" ]] && { echo "Fehler: Netzwerkname erforderlich. Verwendung: $0 inspect "; exit 1; } + ;; + "") + echo "Fehler: Befehl erforderlich. Verwendung: $0 networks|inspect|help" + exit 1 + ;; + *) + # Kompatibilität: Wenn erstes Argument kein bekannter Befehl ist, behandle es als Netzwerkname + NET="$COMMAND" + ;; +esac + +# Hauptlogik für die Inspektion eines Netzwerks (rest des originalen Scripts) + +[[ -z "$NET" ]] && { echo "Fehler: Netzwerkname erforderlich. Verwendung: $0 "; exit 1; } # 1) Netzwerk-ID und Bridge-Name separat holen (jeweils eigenes inspect) ID="$(docker network inspect "$NET" --format '{{.Id}}' 2>/dev/null || true)"