docs: README minimiert, docs/-Ordner mit Schnellstart, Installation, Verwendung, Beispielen, Fehlerbehandlung und technischen Details angelegt

This commit is contained in:
2026-04-10 12:25:27 +02:00
parent f03673ec75
commit 393cbc4926
7 changed files with 185 additions and 188 deletions

190
README.md
View File

@@ -2,202 +2,16 @@
Ein Bash-Script zur Verwaltung und Analyse von Docker-Netzwerken. Ein Bash-Script zur Verwaltung und Analyse von Docker-Netzwerken.
## Beschreibung Weitere Informationen in der [Dokumentation](docs/README.md).
**Dockernet Inspector** hilft bei der täglichen Arbeit mit Docker-Netzwerken durch zwei Nutzungsmodi: ## Schnellstart
**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 ```bash
git clone https://git.techniverse.net/scriptos/dockernet-inspector.git git clone https://git.techniverse.net/scriptos/dockernet-inspector.git
cd dockernet-inspector cd dockernet-inspector
```
2. Script ausführbar machen:
```bash
chmod +x dockernet-inspector.v1.sh 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 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 <netzwerk>` | Zeigt detaillierte Informationen zu einem Netzwerk |
| `ips <netzwerk>` | Zeigt alle belegten IPv4-Adressen im angegebenen Netzwerk |
| `ips-all` | Zeigt alle belegten IPv4-Adressen in allen Docker-Netzwerken (aufsteigend) |
| `<netzwerk>` | Alias für `inspect <netzwerk>` (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 <docker-network-name>`
- Keine Netzwerk-Angabe bei `ips`: `Fehler: Netzwerkname erforderlich. Verwendung: $0 ips <docker-network-name>`
- Netzwerk nicht gefunden: `Fehler: Netzwerk '<name>' 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 - `set -euo pipefail` für robuste Script-Ausführung
## Lizenz ## Lizenz

13
docs/README.md Normal file
View File

@@ -0,0 +1,13 @@
# Dockernet Inspector Dokumentation
Willkommen in der Dokumentation des **Dockernet Inspectors**.
## Inhaltsverzeichnis
| Dokument | Beschreibung |
|----------|--------------|
| [Installation](installation.md) | Voraussetzungen, Klonen und Einrichtung |
| [Verwendung](usage.md) | Modi, Befehle und Optionen |
| [Beispiele](examples.md) | Ausgabe-Beispiele zu allen Befehlen |
| [Fehlerbehandlung](error-handling.md) | Fehlermeldungen und deren Bedeutung |
| [Technische Details](technical.md) | Voraussetzungen und verwendete Tools |

19
docs/error-handling.md Normal file
View File

@@ -0,0 +1,19 @@
# Fehlerbehandlung
## CLI-Modus
| Situation | Fehlermeldung |
|-----------|---------------|
| Kein Netzwerkname bei `inspect` | `Fehler: Netzwerkname erforderlich. Verwendung: $0 inspect <docker-network-name>` |
| Kein Netzwerkname bei `ips` | `Fehler: Netzwerkname erforderlich. Verwendung: $0 ips <docker-network-name>` |
| Netzwerk nicht gefunden | `Fehler: Netzwerk '<name>' nicht gefunden.` |
| Docker nicht erreichbar | `Fehler: Docker Netzwerke konnten nicht abgerufen werden.` |
## Interaktiver Modus
| Situation | Fehlermeldung |
|-----------|---------------|
| Ungültige Menü-Eingabe | `FEHLER: Ungueltige Eingabe. Bitte geben Sie eine Nummer zwischen 0 und 4 ein.` |
| Keine Netzwerke vorhanden | `Fehler: Keine Docker Netzwerke gefunden.` |
Bei ungültigen Eingaben im interaktiven Modus bricht das Script nicht ab der Nutzer kann die Eingabe korrigieren.

62
docs/examples.md Normal file
View File

@@ -0,0 +1,62 @@
# 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
```
## Interaktives Menü
```text
================================================================================
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):
```

22
docs/installation.md Normal file
View File

@@ -0,0 +1,22 @@
# Installation
## Voraussetzungen
- Docker ist installiert und läuft
- Bash (Version 4+ empfohlen)
- Linux-Host (für `/sys/class/net/` beim `inspect`-Befehl)
## Einrichtung
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
```

17
docs/technical.md Normal file
View File

@@ -0,0 +1,17 @@
# Technische Details
## Voraussetzungen
- Docker ist installiert und läuft
- Bash Version 4+
- Linux-Host (für `/sys/class/net/` beim `inspect`-Befehl)
## Verwendete Tools
| Tool | Zweck |
|------|-------|
| `docker network ls` | Alle Netzwerke auflisten |
| `docker network inspect` | Netzwerk-Details abfragen |
| `sort -V` | Natürliche IP-Sortierung |
| `column -t -s $'\t'` | Dynamisch ausgerichtete Tabellenausgabe |
| `/sys/class/net/` | Interface-Status und RX/TX-Statistiken |

50
docs/usage.md Normal file
View File

@@ -0,0 +1,50 @@
# Verwendung
Das Script kann auf zwei Arten verwendet werden.
## Interaktiver Modus (Menü)
```bash
bash ./dockernet-inspector.v1.sh
```
Das Script startet ein interaktives Menü mit folgenden Optionen:
- **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
Bei den Optionen **2** und **3** wird eine Netzwerkliste angezeigt, aus der per Nummer ausgewählt werden kann.
## Kommandozeilen-Modus (CLI)
```bash
bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONEN]
```
### Verfügbare Befehle
| Befehl | Beschreibung |
|--------|--------------|
| *(keine)* | Startet den interaktiven Modus |
| `networks` | Listet alle verfügbaren Docker-Netzwerke auf |
| `inspect <netzwerk>` | Zeigt detaillierte Informationen zu einem Netzwerk |
| `ips <netzwerk>` | Zeigt alle belegten IPv4-Adressen im angegebenen Netzwerk |
| `ips-all` | Zeigt alle belegten IPv4-Adressen in allen Docker-Netzwerken (aufsteigend sortiert) |
| `<netzwerk>` | Alias für `inspect <netzwerk>` (Rückwärtskompatibilität) |
| `help`, `-h`, `--help` | Zeigt die Hilfe an |
### Kurzbeispiele
```bash
bash ./dockernet-inspector.v1.sh networks
bash ./dockernet-inspector.v1.sh inspect bridge
bash ./dockernet-inspector.v1.sh my-custom-network
bash ./dockernet-inspector.v1.sh ips dockernet
bash ./dockernet-inspector.v1.sh ips-all
bash ./dockernet-inspector.v1.sh help
```
Ausführliche Ausgabe-Beispiele sind in [examples.md](examples.md) zu finden.