# Dockernet Inspector Ein Bash-Script zur Verwaltung und Analyse von Docker-Netzwerken. ## Beschreibung **Dockernet Inspector** hilft bei der täglichen Arbeit mit Docker-Netzwerken durch zwei Nutzungsmodi: **Interaktiver Modus (Menü):** - Benutzerfreundliches Menü ohne Kommandozeilenargumente - Intuitive Netzwerk-Auswahl aus einer Liste - Fehlerbehandlung bei ungültigen Eingaben **Kommandozeilen-Modus (CLI):** - Schnelle automatisierte Abfragen - Scripting-freundlich - Rückwärtskompatibel Das Script bietet vier Hauptfunktionen: 1. Alle Netzwerke auflisten 2. Netzwerk-Details inspizieren 3. Belegte IPs pro Netzwerk anzeigen 4. Belegte IPs in allen Netzwerken anzeigen (aufsteigend sortiert) Beim Inspizieren eines Netzwerks werden u. a. folgende Informationen angezeigt: - Netzwerk-Driver (bridge, overlay, host, ...) - Bridge-Interface auf dem Host - Subnet und Gateway - Interface-Status (operstate) - RX/TX Netzwerk-Statistiken ## Installation 1. Repository klonen: ```bash git clone https://git.techniverse.net/scriptos/dockernet-inspector.git cd dockernet-inspector ``` 2. Script ausführbar machen: ```bash chmod +x dockernet-inspector.v1.sh ``` ## Verwendung Das Script kann auf zwei Arten verwendet werden: ### 1. Interaktiver Modus (Menü) ```bash bash ./dockernet-inspector.v1.sh ``` Das Script startet dann ein interaktives Menü, über das Sie folgende Optionen wählen können: - **1** - Alle Netzwerke auflisten - **2** - Detaillierte Infos zu einem Netzwerk (mit Netzwerk-Auswahl) - **3** - IPs eines Netzwerks anzeigen (mit Netzwerk-Auswahl) - **4** - Alle belegten IPs anzeigen - **0** - Beenden ### 2. Kommandozeilen-Modus (CLI) ```bash bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONEN] ``` ### Verfügbare Befehle | Befehl | Beschreibung | |--------|--------------| | *(keine)* | Startet interaktiven Modus | | `networks` | Listet alle verfügbaren Docker-Netzwerke auf | | `inspect ` | Zeigt detaillierte Informationen zu einem Netzwerk | | `ips ` | Zeigt alle belegten IPv4-Adressen im angegebenen Netzwerk | | `ips-all` | Zeigt alle belegten IPv4-Adressen in allen Docker-Netzwerken (aufsteigend) | | `` | Alias für `inspect ` (Rückwärtskompatibilität) | | `help`, `-h`, `--help` | Zeigt die Hilfe an | ### Beispiele #### Interaktiver Modus ```bash # Interaktives Menü starten bash ./dockernet-inspector.v1.sh # Output: # ================================================================================ # Dockernet Inspector - Interaktives Menü # ================================================================================ # # 1. Alle Netzwerke auflisten # 2. Detaillierte Infos zu einem Netzwerk # 3. IPs eines Netzwerks anzeigen # 4. Alle belegten IPs anzeigen # 0. Beenden # # Bitte waehlen Sie eine Option (0-4): ``` Im Menü können Sie einfach die Nummer eingeben. Bei den Optionen 2 und 3 werden Sie aufgefordert, ein Netzwerk aus einer Liste zu wählen. #### Kommandozeilen-Modus ```bash # Alle Docker-Netzwerke auflisten bash ./dockernet-inspector.v1.sh networks # Netzwerk analysieren (explizit) bash ./dockernet-inspector.v1.sh inspect bridge # Netzwerk analysieren (Alias) bash ./dockernet-inspector.v1.sh my-custom-network # Belegte IPs eines Netzwerks bash ./dockernet-inspector.v1.sh ips dockernet # Belegte IPs in allen Netzwerken bash ./dockernet-inspector.v1.sh ips-all # Hilfe bash ./dockernet-inspector.v1.sh help ``` ## Ausgabe-Beispiele ### `networks` ```text Verfügbare Docker Netzwerke: ============================== ID NAME DRIVER SCOPE abcd1234efgh5678ijkl9012 bridge bridge local mnop4567qrst8901uvwx2345 host host local yzab3456cdef7890ghij1234 mynet bridge local ``` ### `inspect` ```text Docker-Netzwerk : my-network Driver : bridge Bridge-Interface : br-1234567890ab Subnet/Gateway : 172.18.0.0/16 / 172.18.0.1 OperState : up RX bytes/packets : 123456 / 789 TX bytes/packets : 654321 / 456 ``` ### `ips` ```text Belegte IP-Adressen im Netzwerk 'dockernet': ======================================== CONTAINER IP dozzle 172.16.0.95 grafana 172.16.0.129 ``` ### `ips-all` ```text Belegte IP-Adressen in allen Netzwerken (aufsteigend): ======================================================= NETZWERK CONTAINER IP dockernet dozzle 172.16.0.95 datagerry.dockernetwork.local datagerry-nginx 172.16.14.10 matrixnetwork matrix-synapse-db 172.19.0.11 ``` ## Fehlerbehandlung Das Script gibt unter anderem folgende Fehlermeldungen aus: **CLI-Modus:** - Keine Netzwerk-Angabe bei `inspect`: `Fehler: Netzwerkname erforderlich. Verwendung: $0 inspect ` - Keine Netzwerk-Angabe bei `ips`: `Fehler: Netzwerkname erforderlich. Verwendung: $0 ips ` - Netzwerk nicht gefunden: `Fehler: Netzwerk '' nicht gefunden.` - Docker-Netzwerke konnten nicht abgerufen werden: `Fehler: Docker Netzwerke konnten nicht abgerufen werden.` **Interaktiver Modus:** - Ungültige Eingabe: `FEHLER: Ungueltige Eingabe. Bitte geben Sie eine Nummer zwischen 0 und 4 ein.` - Keine Netzwerke vorhanden: `Fehler: Keine Docker Netzwerke gefunden.` Das Script unterstützt auch Fehlerbehandlung bei ungültigen Eingaben und ermöglicht dem Nutzer, die Eingabe zu korrigieren, ohne dass das Script abstürzt. ## Voraussetzungen - Docker ist installiert und läuft - Bash (Version 4+ empfohlen) - Linux-Host (für `/sys/class/net/` beim `inspect`-Befehl) ## Technische Details Das Script nutzt: - `docker network ls` und `docker network inspect` - `sort -V` für natürliche IP-Sortierung - `column -t -s $'\t'` für dynamisch ausgerichtete Tabellen - `set -euo pipefail` für robuste Script-Ausführung ## Lizenz Siehe [LICENSE](./LICENSE). ## Autor **Patrick Asmus** - Website: [https://www.cleveradmin.de](https://www.cleveradmin.de) - Git: [https://git.techniverse.net/scriptos/dockernet-inspector.git](https://git.techniverse.net/scriptos/dockernet-inspector.git) ## Version - **Version:** 1.2.0 - **Datum:** 18.02.2026 - **Modifikation:** IP-Listen pro Netzwerk und netzwerkübergreifend hinzugefügt