docs: README minimiert, docs/-Ordner mit Schnellstart, Installation, Verwendung, Beispielen, Fehlerbehandlung und technischen Details angelegt
This commit is contained in:
190
README.md
190
README.md
@@ -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
13
docs/README.md
Normal 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
19
docs/error-handling.md
Normal 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
62
docs/examples.md
Normal 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
22
docs/installation.md
Normal 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
17
docs/technical.md
Normal 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
50
docs/usage.md
Normal 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.
|
||||||
Reference in New Issue
Block a user